Au cours des derniers mois, Microsoft a publié des versions mensuelles de Visual Studio 2026, apportant des améliorations à toutes les étapes du cycle de développement. Voici un récapitulatif de toutes les modifications apportées entre les versions 18.7 et 18.10 qui concernent les développeurs C++. Cela inclut de nouveaux outils pour la gestion et la navigation dans les projets C++, ainsi que des améliorations liées à Git, GitHub Copilot et au débogage, qui facilitent la construction de bases de code natives volumineuses. Visual Studio est un environnement de développement intégré (EDI) développé par Microsoft. Il sert à développer des programmes informatiques, notamment des sites web, des applications web, des services web et des applications mobiles. Visual Studio utilise les plateformes de développement logiciel de Microsoft, notamment l'API Windows, Windows Forms, Windows Presentation Foundation (WPF), Microsoft Store et Microsoft Silverlight. Il permet de générer à la fois du code natif et du code géré.
Visual Studio comprend un éditeur de code prenant en charge IntelliSense (le composant de complétion de code) ainsi que la refactorisation de code. Le débogueur intégré fonctionne à la fois comme un débogueur au niveau du code source et comme un débogueur au niveau machine. Parmi les autres outils intégrés, on trouve un profileur de code, un concepteur d’applications avec interface graphique, un concepteur web, un concepteur de classes et un concepteur de schémas de bases de données.
Il accepte des plug-ins qui étendent ses fonctionnalités à presque tous les niveaux, notamment en ajoutant la prise en charge de systèmes de contrôle de version (tels que Subversion et Git) et en intégrant de nouveaux ensembles d’outils, comme des éditeurs et des concepteurs visuels pour des langages spécifiques à un domaine, ou des outils destinés à d’autres aspects du cycle de vie du développement logiciel (comme le client Azure DevOps : Team Explorer).
Au cours des derniers mois, Microsoft a publié des versions mensuelles de Visual Studio 2026, apportant des améliorations à toutes les étapes du cycle de développement. Voici un récapitulatif de toutes les modifications apportées entre les versions 18.7 et 18.10 qui concernent les développeurs C++. Cela inclut de nouveaux outils pour la gestion et la navigation dans les projets C++, ainsi que des améliorations liées à Git, GitHub Copilot et au débogage, qui facilitent la construction de bases de code natives volumineuses.
Parmi les points forts, on peut citer l’expérience de modernisation de GitHub Copilot (désormais disponible pour tous) pour vous guider dans les mises à niveau de MSVC, un index sémantique plus approfondi pour accélérer la navigation dans le code, la possibilité de détecter les versions des outils de compilation MSVC sur toutes les installations, ainsi que la prise en charge des arborescences de travail Git et des sous-modules directement dans l’EDI.
Voici le récapitulatif de Microsoft des modifications apportées entre les versions 18.7 et 18.10 de Visual Studio 2026 pour les développeurs C++ :
Améliorations de la fiabilité du C++
Dans les versions 18.7 à 18.10 de Visual Studio 2026, nous avons corrigé 272 bogues C++ signalés via la communauté des développeurs et lors de tests internes.
Ces corrections concernent notamment les diagnostics IntelliSense C++ et la résolution des inclusions, des problèmes liés au compilateur et à la génération de code, une std::regex regression, la stabilité du débogueur et un problème lié au menu contextuel de l’Explorateur de solutions C++.
Modernisation et gestion des projets C++
Mise à niveau des projets MSVC avec GitHub Copilot
La modernisation GitHub Copilot pour le C++ est désormais disponible pour tous. Cet agent de modernisation aide à mettre à niveau les projets MSBuild et CMake vers une version plus récente des outils de compilation Microsoft C++ (MSVC). Il évalue la base de code, élabore un plan de mise à niveau, met à jour les paramètres du projet et le code source, puis valide les corrections apportées à des problèmes tels que le renforcement des exigences de conformité, les fonctions obsolètes de la bibliothèque standard, les nouveaux avertissements et les erreurs d’éditeur de liens.
L’agent dispose de deux modes de fonctionnement. Le mode automatique effectue l’évaluation, la planification et l’exécution avec un minimum d’intervention. Le mode guidé marque une pause entre chaque étape afin que vous puissiez examiner la portée et l’approche proposée avant que les modifications ne soient appliquées. Vous pouvez changer de mode au fur et à mesure que la mise à niveau progresse.
Avant de commencer, utilisez le programme d’installation de Visual Studio pour sélectionner le composant optionnel de modernisation GitHub Copilot. Vous devez également disposer d’un abonnement GitHub Copilot et d’un projet C++ MSBuild ou CMake.
Cliquez avec le bouton droit sur une solution ou un projet dans l’Explorateur de solutions et sélectionnez « Moderniser », ou saisissez @Modernize dans le chat GitHub Copilot. Pour les projets MSBuild qui font référence à une version de MSVC indisponible, l’assistant de configuration peut également proposer de lancer l’agent de modernisation après avoir réorienté le projet. L’agent se concentre sur les problèmes causés par la mise à niveau de MSVC et adapte sa liste de tâches lorsqu’une correction en révèle un autre. Vous gardez le contrôle de la portée et pouvez arrêter, rediriger ou reprendre le travail.
Utilisation de PackageReference dans les projets C++ natifs
Visual Studio 2026 a introduit une prise en charge expérimentale de NuGet PackageReference dans les projets .vcxproj natifs. Les références de packages résident directement dans le fichier de projet, prennent en charge la résolution des dépendances transitives, utilisent le cache global de packages de NuGet et peuvent être conditionnées par la configuration ou la plateforme à l’aide de la syntaxe MSBuild standard.
Activez cette fonctionnalité dans un projet ou dans le fichier Directory.Build.props :
| Code : | Sélectionner tout |
1 2 3 4 5 | <Project>
<PropertyGroup>
<EnableNativePackageReferenceSupport>true</EnableNativePackageReferenceSupport>
</PropertyGroup>
</Project> |
Vous pouvez ensuite modifier directement le fichier de projet ou utiliser la fonctionnalité « Gérer les packages NuGet » dans Visual Studio :
| Code : | Sélectionner tout |
1 2 3 4 5 | <ItemGroup>
<PackageReference
Include="Microsoft.Windows.CppWinRT"
Version="2.0.240405.15" />
</ItemGroup> |
Nous continuons à recommander vcpkg pour l’acquisition et la gestion des bibliothèques C et C++. Cependant, NuGet PackageReference est utile pour les SDK et binaires distribués via NuGet, les flux NuGet internes et les référentiels nécessitant un workflow de distribution cohérent entre les projets C++ natifs et .NET.
La mise en œuvre initiale est désactivée par défaut et n’est toujours pas prise en charge pour les projets C++/CLI ciblant des versions de .NET Framework ; elle reste également limitée pour certaines références de projet interlangages.
Découvrez les versions épinglées des outils de compilation MSVC dans les différentes installations
Visual Studio 2026 peut désormais localiser une version exacte (majeure.mineure.correctif) des outils de compilation MSVC épinglée dans une autre installation de Visual Studio ou dans une installation autonome des outils de compilation. Cela aide les équipes à mettre à jour l’IDE de manière indépendante tout en conservant une version de compilateur dont la fiabilité est avérée pour des builds locaux et d’intégration continue reproductibles.
Auparavant, Visual Studio ne recherchait un ensemble d’outils correspondant dans d’autres installations que si votre installation actuelle ne disposait d’aucun ensemble d’outils pour la version de votre plateforme cible. Cette modification supprime cette restriction.
Activez cette fonctionnalité avec EnableVCToolsVersionDiscovery et spécifiez la version requise de VCToolsVersion :
| Code : | Sélectionner tout |
1 2 3 4 | <PropertyGroup>
<EnableVCToolsVersionDiscovery>true</EnableVCToolsVersionDiscovery>
<VCToolsVersion>14.43.34604</VCToolsVersion>
</PropertyGroup> |
Lorsque la version demandée n'est pas disponible dans l'installation actuelle, Visual Studio recherche d'autres installations au lieu d'exiger l'attribution manuelle d'un VCToolsInstallDir. Cela offre aux équipes deux approches complémentaires : utiliser l'agent de modernisation au moment de la mise à niveau ou épingler une version précise des outils de compilation MSVC lorsque la compatibilité et la reproductibilité sont prioritaires.
Découvrez en avant-première les prochaines mises à jour des outils de compilation MSVC
Le développement de la version 14.52 des outils de compilation MSVC s’est poursuivi avec des mises à jour mensuelles des versions préliminaires distribuées via le canal stable de Visual Studio (et des mises à jour encore plus rapides via le canal Insiders).
Dans les préversions de juillet et août, les mises à jour du front-end et des modules incluent la prise en charge des expressions new[] initialisées par défaut dans l’évaluation des constantes avec les modules, une recherche dépendante des arguments et une sérialisation des modules plus robustes, ainsi que des diagnostics plus clairs concernant les incompatibilités de conventions d’appel, les options de compilateur incompatibles et les bibliothèques compilées inutilisables.
Le back-end a ajouté la prise en charge d’Armv9.2 LUTI2 et a amélioré la vectorisation ARM64, l’appariement de chargement et la sélection d’instructions. Les mises à jour x64 et x86 ont élargi la sélection d’instructions APX et amélioré les comparaisons conditionnelles, les constantes vectorielles et les appels de queue. L’optimiseur a bénéficié d’améliorations supplémentaires concernant les boucles, les variables d’induction, la dévirtualisation et la réassociation d’expressions. L’éditeur de liens et les outils de débogage ont également amélioré la liaison incrémentielle, la croissance et le déterminisme des fichiers PDB, les flux d’informations de débogage volumineux et la fusion des types de modules.
AddressSanitizer peut désormais utiliser le désassembleur MSVC comme décodeur de longueur d’instruction de secours, ce qui réduit les échecs liés aux instructions non reconnues et permet de diagnostiquer les utilisations incompatibles avec /clr. Ces versions préliminaires incluent également des améliorations de la fiabilité de l’analyse de code ainsi que des corrections concernant les plantages du compilateur, les erreurs de compilation, les régressions de modules et la génération de code AVX-512 invalide.
Naviguez plus rapidement dans les bases de code C++ volumineuses
L’indexation de l’intégralité de la base de code est une fonctionnalité en avant-première qui enrichit la base de données de navigation C++ d’informations plus détaillées sur l’utilisation des symboles. Au lieu de calculer à la demande et de manière répétitive certaines relations, Visual Studio peut réutiliser les données sémantiques qui ont été indexées au fur et à mesure de votre travail.
Cet index plus approfondi améliore les fonctionnalités qui utilisent le moteur IntelliSense, notamment la coloration sémantique, « Aller à la définition » et « Rechercher toutes les références ». Il permet également à l’outil find_symbol de Copilot d’accéder plus rapidement à ces fonctionnalités de navigation dans le code et active les références CodeLens pour le C++. Lors des tests effectués par Microsoft avec Bullet3 et LLVM, de nombreux scénarios de navigation et de coloration ont vu leurs performances multipliées par deux, voire plus, bien que les résultats et les coûts d’indexation varient en fonction de la base de code.
Pour activer cette fonctionnalité, ouvrez Outils > Options > Langages > C/C++ > IntelliSense > Parcours et navigation > Index sémantique de l’ensemble de la base de code, puis activez la navigation et la coloration plus rapides du code.
Optimisez les builds que vous exécutez quotidiennement
Les performances de build de GitHub Copilot pour Windows évaluent désormais aussi bien les builds itératifs que les builds « clean ». Cette distinction est importante, car une optimisation telle qu’un en-tête précompilé peut ralentir légèrement une recompilation complète tout en améliorant la boucle « édition-build-débogage » que les développeurs répètent tout au long de la journée.
Demandez à Copilot Chat de « rendre ma compilation plus rapide ». L’agent établit une base de référence, propose une optimisation, mesure le résultat et annule les modifications qui n’apportent rien. Si une modification n’est pas bénéfique dans une compilation « propre », l’agent peut tester une compilation itérative comparable avant de décider de la conserver ou non.
Réviser les modifications avec GitHub Copilot
La révision Copilot s’étend désormais d’un bloc de code sélectionné aux modifications actives, aux commits et aux pull requests. Sélectionnez n’importe quel bloc de code dans l’éditeur et choisissez Actions Copilot > Réviser la sélection pour une révision ciblée. Les résultats s’affichent sous forme de commentaires intégrés afin que vous puissiez les examiner et y remédier dans leur contexte.
Pour une révision sous forme de conversation, basculez vers l’agent Git dans GitHub Copilot Chat. Demandez-lui de réviser le travail non validé, sélectionnez la commande de révision Copilot dans « Modifications Git », ou joignez un commit dans le chat. Vous pouvez également lancer cette révision depuis la barre d’informations post-commit ou à partir d’un commit dans la fenêtre « Dépôt Git ». Les résultats s’affichent en ligne et dans une liste navigable, et vous pouvez poursuivre la conversation pour examiner un résultat ou demander une correction suggérée.
Visual Studio propose également un workflow de révision des commits en local. Activez l’option « Réviser les modifications Git localement et fournir des suggestions à partir des commentaires » sous Outils > Options > GitHub > Copilot > Intégration du contrôle de source, puis cliquez avec le bouton droit sur un commit dans la fenêtre « Dépôt Git » et sélectionnez « Réviser le commit ». Vous pouvez sélectionner deux commits pour réviser la plage comprise entre eux. Ces révisions restent locales à la session Visual Studio. Les deux workflows de révision prennent en charge les dépôts GitHub et Azure DevOps.
La révision Copilot constitue une source supplémentaire de retours d’information, mais ne remplace en aucun cas les diagnostics du compilateur, l’analyse de code, les tests ou la révision humaine. Elle s’avère particulièrement utile lorsque vous lui définissez un périmètre clair, par exemple pour vérifier les changements de propriété, la synchronisation des threads, la gestion des erreurs ou l’utilisation des API avant d’ouvrir une pull request.
L'expérience plus complète des pull requests vous permet également d'inspecter les modifications sans extraire la branche, de commenter et de résoudre des fils de discussion, de réviser les commits, d'approuver les modifications, ainsi que de finaliser ou de fusionner la pull request depuis Visual Studio.
Travailler sur de grands dépôts Git
Gérer plusieurs branches actives avec les arborescences de travail
Visual Studio 2026 a ajouté la gestion intégrée des arborescences de travail Git. Une arborescence de travail attribue à une autre branche son propre répertoire de travail, ce qui vous permet de conserver intactes certaines modifications C++ inachevées tout en recherchant un bogue ou en préparant un correctif sur une autre branche.
Dans la fenêtre Dépôt Git, cliquez avec le bouton droit sur une branche et sélectionnez « Nouvelle arborescence de travail à partir de ».
Vous pouvez créer un arborescence de travail à partir d'une branche existante, d'une nouvelle branche ou d'un commit, puis l'ouvrir dans la fenêtre actuelle ou dans une instance distincte de Visual Studio. Les arborescences de travail s'affichent à côté des branches et peuvent être supprimées de la même fenêtre lorsqu'elles ne sont plus nécessaires.
Gérer les sous-modules sans quitter Visual Studio
Les sous-modules sont...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.