RCLogo Notes de publication de Visual Studio 2019 version 16.7


Developer Community | Configuration requise | Compatibilité | Code distribuable | Historique des versions | Termes du contrat de licence | Blogs | Documentation sur les nouveautés de Visual Studio


Remarque

Il ne s’agit pas de la dernière version de Visual Studio. Pour télécharger la version la plus récente, veuillez vous rendre sur le site de Visual Studio.



Délai de prise en charge

Visual Studio 2019 version 16.7 n’est désormais plus pris en charge.

Les utilisateurs de la version Enterprise et Professional de Visual Studio 2019 version 16.7 étaient pris en charge et recevaient des correctifs pour les vulnérabilités de sécurité jusqu’en avril 2022. Ce délai a été déterminé par le fait qu’en mars 2021, Visual Studio 2019 version 16.9 a été désigné comme ligne de base de maintenance finale pour le produit Visual Studio 2019. Pour plus d’informations sur les lignes de base prises en charge par Visual Studio, consultez la stratégie de support pour Visual Studio 2019

Reportez-vous à la dernière version des notes de publication ou accédez au site Visual Studio pour télécharger la dernière version de Visual Studio 2019 prise en charge.

Publications de Visual Studio 2019 version 16.7

Notes de publication archivées de Visual Studio 2019

Blog Visual Studio

Le blog Visual Studio est la source officielle où l’équipe d’ingénierie de Visual Studio partage des informations sur le produit. Vous trouverez des informations détaillées sur les versions de Visual Studio dans les billets de blog suivants :


Icône Notes de publication Visual Studio 2019 version 16.7.28

publiée le 19 avril 2022

Dans cette mise en production de Visual Studio 2019 version 16.7.28

  • Correction de la régression vctip.exe de la version 16.7.27

Icône Notes de publication Visual Studio 2019 version 16.7.27

publiée le 12 avril 2022

Dans cette mise en production de Visual Studio 2019 version 16.7.27

Avis de sécurité Microsoft

CVE-2022-24765 Vulnérabilité d’élévation de privilèges Une vulnérabilité potentielle d’élévation de privilèges existe dans Git pour Windows, dans laquelle les opérations Git peuvent s’exécuter en dehors d’un dépôt pendant la recherche d’un répertoire Git. Git pour Windows est désormais mis à jour vers la version 2.35.2.1.

CVE-2022-24767 Vulnérabilité de détournement de DLL Une vulnérabilité potentielle de détournement de DLL existe dans le programme d’installation de Git pour Windows pendant l’exécution du programme de désinstallation sous le compte d’utilisateur SYSTEM. Git pour Windows est désormais mis à jour vers la version 2.35.2.1.

CVE-2022-24513 Vulnérabilité d’élévation des privilèges Une vulnérabilité potentielle d’élévation de privilèges existe lorsque le service de mise à jour Microsoft Visual Studio analyse incorrectement les données de configuration locales.


Icône Notes de publication Visual Studio 2019 version 16.7.26

publiée le 8 mars 2022

Dans cette mise en production de Visual Studio 2019 version 16.7.26

Avis de sécurité Microsoft

CVE-2020-8927 Vulnérabilité Il existe une vulnérabilité d’exécution de code à distance dans .NET 5.0 et .NET Core 3.1 où un dépassement de mémoire tampon se manifeste dans les versions de la bibliothèque Brotli antérieures à 1.0.8.

CVE-2022-24464 Vulnérabilité Il existe une vulnérabilité de déni de service dans .NET 6.0, .NET 5.0 et .NET CORE 3.1 lors de l’analyse de certains types de requêtes de formulaire http.

CVE-2022-24512 Vulnérabilité Il existe une vulnérabilité d’exécution de code à distance dans .NET 6.0, .NET 5.0 et .NET Core 3.1 où un dépassement de mémoire tampon de pile se produit dans la routine d’analyse double de .NET.

CVE-2021-3711 Vulnérabilité de dépassement de mémoire tampon dans OpenSSL Il existe une vulnérabilité potentielle de dépassement de mémoire tampon dans OpenSSL, qui est consommé par Git pour Windows. Git pour Windows est désormais mis à jour sur la version 2.35.1.2, qui résout ce problème.


Icône Notes de publication Visual Studio 2019 version 16.7.25

publiée le 8 février 2022

Dans cette mise en production de Visual Studio 2019 version 16.7.25

Avis de sécurité Microsoft

CVE-2022-21871 Vulnérabilité d’élévation de privilèges du runtime du Collecteur standard du hub de diagnostics Une vulnérabilité d’élévation de privilèges existe si le Collecteur standard du hub de diagnostics gère incorrectement les opérations de données.


Icône Notes de publication Visual Studio 2019 version 16.7.24

publiée le 11 janvier 2022

Dans cette mise en production de Visual Studio 2019 version 16.7.24

  • Correction d’un problème lié à l’impossibilité de déboguer plusieurs fois les applications quand le terminal Windows est utilisé comme terminal par défaut.
  • Correctif de configuration pour débloquer les clients sur des configurations restreintes
  • Correction d’un problème qui empêchait un client de mettre à jour un programme de démarrage système plus récent. Dès que le client utilise le programme de démarrage système et le programme d’installation fournis en janvier 2022 ou après, toutes les mises à jour utilisant les programmes de démarrage système ultérieurs doivent fonctionner pendant la durée du cycle de vie du produit.

À partir de Developer Community


Icône Notes de publication Visual Studio 2019 version 16.7.23

publiée le 14 décembre 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.23

  • Ajout de Python 3.9.7 à la charge de travail Python. Suppression de Python 3.7.8 en raison d’une vulnérabilité de sécurité.

Avis de sécurité Microsoft

CVE-2021-43877 Vulnérabilité Il existe une vulnérabilité d’élévation de privilèges dans ANCM qui peut permettre une élévation de privilèges lorsque les applications .NET Core, .NET 5 et .NET 6 sont hébergées dans IIS.


Icône Notes de publication Visual Studio 2019 version 16.7.22

publiée le 16 novembre 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.22

  • Les programmes de démarrage système respectent désormais le paramètre --useLatestInstaller, ce qui entraîne l’intégration du programme d’installation le plus récent dans le layout. Ce programme d’installation le plus récent, fourni avec Visual Studio 2022, permet aux entreprises de migrer leurs clients d’un emplacement de layout vers un autre. Pour plus d’informations, veuillez consulter le [Guide des administrateurs Visual Studio](* Les programmes de démarrage système respectent désormais le paramètre --useLatestInstaller, ce qui entraîne l’intégration du programme d’installation le plus récent dans le layout. Ce programme d’installation le plus récent, fourni avec Visual Studio 2022, permet aux entreprises de migrer leurs clients d’un emplacement de layout vers un autre. Pour plus d'informations, consultez le Guide des administrateurs Visual Studio.)

Icône Notes de publication Visual Studio 2019 version 16.7.21

publiée le 9 novembre 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.21

  • Correction d’un bogue qui entraîne la disparition d’un lien de raccourci du menu Démarrer. Le bogue se produit uniquement lors de la mise à jour de plusieurs instances de références SKU de produit différentes sur la même machine.

Avis de sécurité Microsoft

CVE-2021-42319 Vulnérabilité d’élévation de privilèges Il existe une vulnérabilité d’élévation de privilèges dans le fournisseur WMI inclus dans le programme d’installation de Visual Studio.

CVE-2021-42277 Vulnérabilité d’élévation de privilèges du service Collecteur standard du hub de diagnostics Il existe une vulnérabilité d’élévation de privilèges lorsque le Collecteur standard du hub de diagnostics gère incorrectement les opérations de fichiers.


Icône Notes de publication Visual Studio 2019 version 16.7.20

publiée le 12 octobre 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.20

Avis de sécurité Microsoft

CVE-2021-41355 Divulgation d'informations dans .NET 5.0 Il existe une vulnérabilité de divulgation d’informations dans .NET où System.DirectoryServices.Protocols.LdapConnection envoie des informations d’identification en texte brut sur Linux.

CVE-2020-1971 Vulnérabilité de déni de service dans OpenSSL Un déni de service potentiel de vulnérabilité existe dans la bibliothèque OpenSSL, qui est consommée par Git.

CVE-2021-3449 Vulnérabilité de déni de service dans OpenSSL Un déni de service potentiel dans la bibliothèque OpenSSL, qui est consommée par Git.

CVE-2021-3450 Vulnérabilité de déni de service dans OpenSSL Une déviation potentielle de l’indicateur existe dans la bibliothèque OpenSSL, qui est consommée par Git.


Icône Notes de publication Visual Studio 2019 version 16.7.19

publiée le 14 septembre 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.19

Avis de sécurité Microsoft

CVE-2021-26434 Vulnérabilité d’élévation de privilèges de l’attribution d’autorisation incorrecte dans Visual Studio Une vulnérabilité d’attribution d’autorisation existe dans Visual Studio après avoir installé le développement de jeux avec C++ et sélectionné la charge de travail du programme d’installation de Unreal Engine. Le système est vulnérable à une élévation de privilèges faibles, car pendant l’installation il crée un répertoire avec un accès en écriture pour tous les utilisateurs.

CVE-2021-36952 Vulnérabilité d’exécution de code à distance dans Visual Studio Une vulnérabilité d’exécution de code à distance existe dans Visual Studio quand il gère de manière incorrecte des objets en mémoire. Un attaquant qui parvient à exploiter cette vulnérabilité peut exécuter du code arbitraire dans le contexte de l’utilisateur actuel.


Icône Notes de publication Visual Studio 2019 version 16.7.18

publiée le 10 août 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.18

  • Correction d’un problème qui impactait l’exécution de la ligne de commande de la commande de mise à jour. Si la mise à jour échoue la première fois, l’émission ultérieure de la commande de mise à jour entraîne désormais la reprise par la mise à jour de l’opération précédente là où elle s’est arrêtée.

Avis de sécurité Microsoft

CVE-2021-26423 Déni de vulnérabilité de service de .NET Core Une vulnérabilité de déni de service existe, où des applications serveur .NET (Core) fournissant des points de terminaison WebSocket peuvent être amenées dans une boucle sans fin pendant la tentative de lecture d’une seule image WebSocket.

CVE-2021-34485 Vulnérabilité de la divulgation d'informations de .NET Core Une vulnérabilité de divulgation d’informations existe quand des images mémoire créées par l’outil pour collecter des images mémoire d’incident et des images mémoire à la demande sont créées avec des autorisations de lecture générales sur Linux et macOS.

CVE-2021-34532 Vulnérabilité de divulgation d’informations d’ASP.NET Core Une vulnérabilité de divulgation d’informations existe dans laquelle un jeton JWT est enregistré s’il ne peut pas être analysé.


Icône Notes de publication Visual Studio 2019 version 16.7.17

Publication : 13 juillet 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.17

  • SDK .NET 3.1.411 inséré dans Visual Studio 2019.

Icône Notes de publication Visual Studio 2019 version 16.7.16

Publication : 08 juin 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.16

Avis de sécurité Microsoft

CVE-2021-31957 Déni de vulnérabilité de service d’ASP.NET Un déni de service existe quand ASP.NET Core gère incorrectement la déconnexion du client.


Icône Notes de publication Visual Studio 2019 version 16.7.15

Publication : 11 mai 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.15

  • Correction d’un problème entraînant l’échec des mises à jour quand un administrateur crée une disposition de Visual Studio pour le déploiement de mises à jour. La mise à jour de la machine cliente échoue, car la disposition a changé les emplacements.

Avis de sécurité Microsoft

CVE-2021-27068 RCE possible lors de la plantation de python.exe dans le dossier imbriqué Une vulnérabilité d’exécution de code à distance existe lors de l’ouverture d’un espace de travail avec du code Python et que cet espace de travail contient un fichier python.exe dans un sous-dossier de scripts.

CVE-2021-31204 Élévation de vulnérabilité de privilège de .NET Core Une vulnérabilité d’élévation de privilèges existe dans .NET 5.0 et .NET Core 3.1 lorsqu’un utilisateur exécute une application de fichier unique sur des systèmes d’exploitation basés sur Linux ou macOS.


Icône Notes de publication Visual Studio 2019 version 16.7.14

Publication : 13 avril 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.14

  • Optimiseur supprimant incorrectement le code actif
  • NuGet signale la source du package et le hachage de contenu de package lors de la restauration de packages au niveau de la détail de sortie normale
  • NuGet enregistre la source du package dans le fichier .nupkg.metadata du package dans le dossier de packages globaux. Les packages existants dans le dossier des packages globaux ne recevront pas ces informations supplémentaires. Votre dossier de packages globaux peut être effacé pour collecter les informations de source de package pour tous les packages.

Avis de sécurité Microsoft

CVE-2021-27064 Élévation du programme d’installation Visual Studio de la vulnérabilité de privilège Une vulnérabilité d’exécution de code à distance existe lorsque le programme d’installation de Visual Studio exécute le client de commentaires dans un état élevé.

CVE-2021-28313 / CVE-2021-28321/ CVE-2021-28322 Vulnérabilité d’élévation de privilèges du service Collecteur standard du hub de diagnostics Il existe une vulnérabilité d’élévation de privilèges lorsque le Collecteur standard du hub de diagnostics gère incorrectement les opérations de fichiers.


Icône Notes de publication Visual Studio 2019 version 16.7.13

Publication : 09 mars 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.13

Avis de sécurité Microsoft

CVE-2021-21300 Git pour Visual Studio la vulnérabilité d’exécution de code à distance Une vulnérabilité d’exécution de code à distance existe quand Visual Studio clone un référentiel malveillant.

CVE-2021-26701 Vulnérabilité d’exécution de code à distance Une vulnérabilité d’exécution de code à distance existe dans .NET 5 et .NET Core en raison de la façon dont l’encodage de texte est effectué.


Icône Notes de publication Visual Studio 2019 version 16.7.12

Publication : 09 février 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.12


Icône Notes de publication Visual Studio 2019 version 16.7.11

Publication : 09 février 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.11

Bogue dans le compilateur d’optimisation de Visual Studio 2019 version 16.7.6

Avis de sécurité Microsoft

CVE-2021-1639 Vulnérabilité d’exécution de code à distance du service de langage TypeScript Une vulnérabilité d’exécution de code à distance existe quand Visual Studio charge un référentiel malveillant contenant des fichiers de code JavaScript ou TypeScript.

CVE-2021-1721 Vulnérabilité de déni de service .NET Core Une vulnérabilité de déni de service existe lors de la création d’une requête web HTTPS pendant la création d’une chaîne de certificats X509.

CVE-2021-24112 Vulnérabilité d’exécution de code à distance de .NET 5 et .NET Une vulnérabilité d’exécution de code à distance existe lors de la suppression des métafichiers lorsqu’une interface graphique a toujours une référence à celle-ci. Cette vulnérabilité existe uniquement sur les systèmes s’exécutant sur MacOS ou Linux.


Icône Notes de publication Visual Studio 2019 version 16.7.10

Publication : 12 janvier 2021

Dans cette mise en production de Visual Studio 2019 version 16.7.10

Avis de sécurité Microsoft

CVE-2021-1651 / CVE-2021-1680 Vulnérabilité d’élévation de privilèges du service Collecteur standard du hub de diagnostics Il existe une vulnérabilité d’élévation de privilèges lorsque le Collecteur standard du hub de diagnostics gère incorrectement les opérations de fichiers.

CVE-2020-26870 Vulnérabilité d’exécution de code à distance du programme d’installation Visual Studio Une vulnérabilité d’exécution de code à distance existe lorsque Visual Studio Installer tente d’afficher un Markdown malveillant.

CVE-2021-1723 Déni de Vulnérabilité de service de .NET Core et Visual Studio Un déni de vulnérabilité de service existe dans l’implémentation de Kestrel.


Icône Notes de publication Visual Studio 2019 version 16.7.9

Publication : 8 décembre 2020

Dans cette mise en publication de Visual Studio 2019 version 16.7.9

Avis de sécurité Microsoft

CVE-2020-17156 Vulnérabilité d’exécution de code à distance Visual Studio Une vulnérabilité d’exécution de code à distance existe lorsque Visual Studio clone un référentiel malveillant.


Icône Notes de publication Visual Studio 2019 version 16.7.8

Publication : 10 novembre 2020

Dans cette mise en publication de Visual Studio 2019 version 16.7.8

Avis de sécurité Microsoft

CVE-2020-17100 Vulnérabilité de falsification de Visual Studio Une vulnérabilité de falsification existe lorsque Python Tools pour Visual Studio crée le dossier Python27. Un attaquant parvenant à exploiter cette vulnérabilité pourrait exécuter des processus dans un contexte élevé.



Icône Notes de publication Visual Studio 2019 version 16.7.7

Publication : 27 octobre 2020

Dans cette publication de Visual Studio 2019 version 16.7.7


Icône Notes de publication Visual Studio 2019 version 16.7.6

Publication : 13 octobre 2020

Dans cette publication de Visual Studio 2019 version 16.7.6


Icône Notes de publication Visual Studio 2019 version 16.7.5

Date de publication : 29 septembre 2020

Dans cette publication de Visual Studio 2019 version 16.7.5


Icône Notes de publication Visual Studio 2019 version 16.7.4

Date de publication : 21 septembre 2020

Dans cette publication de Visual Studio 2019 version 16.7.4

  • Ajoute la prise en charge de Xcode 12.0 GM.
  • Ajoute la prise en charge de la définition d’un jeu de couleurs comme couleur d’accentuation dans l’éditeur Info.plist.

Icône Notes de publication Visual Studio 2019 version 16.7.3

Publication : 8 septembre 2020

Dans cette publication de Visual Studio 2019 version 16.7.3

Avis de sécurité Microsoft

CVE-2020-1130 Vulnérabilité d’élévation de privilèges du runtime du Collecteur standard du hub de diagnostics Une vulnérabilité d’élévation de privilèges existe lorsque le Collecteur standard du hub de diagnostics gère incorrectement les opérations de données. Un attaquant parvenant à exploiter cette vulnérabilité pourrait exécuter des processus dans un contexte élevé.

CVE-2020-1133 Vulnérabilité d’élévation de privilèges du service Collecteur standard du hub de diagnostics Il existe une vulnérabilité d’élévation de privilèges lorsque le Collecteur standard du hub de diagnostics gère incorrectement les opérations de fichiers. Un attaquant parvenant à exploiter cette vulnérabilité pourrait exécuter des processus dans un contexte élevé.

CVE-2020-16856 Vulnérabilité d’exécution de code à distance dans Visual Studio Une vulnérabilité d’exécution de code à distance existe dans Visual Studio quand il gère de manière incorrecte des objets en mémoire. Un attaquant qui parvient à exploiter cette vulnérabilité peut exécuter du code arbitraire dans le contexte de l’utilisateur actuel.

CVE-2020-16874 Vulnérabilité d’exécution de code à distance dans Visual Studio Une vulnérabilité d’exécution de code à distance existe dans Visual Studio quand il gère de manière incorrecte des objets en mémoire. Un attaquant qui parvient à exploiter cette vulnérabilité peut exécuter du code arbitraire dans le contexte de l’utilisateur actuel.

CVE-2020-1045 Vulnérabilité de contournement de fonctionnalité de sécurité Microsoft ASP.NET Core Une vulnérabilité de contournement des fonctionnalités de sécurité existe de la façon dont Microsoft ASP.NET Core analyse les noms de cookies encodés. L’analyseur de cookie ASP.NET Core décode les chaînes de cookie entières, ce qui peut permettre à un attaquant de définir un deuxième cookie dont le nom est encodé en pourcentage.

Autres problèmes résolus dans cette version

  • Correction d’un plantage du compilateur pour les instructions switch ou les expressions switch utilisant une correspondance de modèle.
  • Restauration du workflow « Arrêter le débogage (Maj+F5) » pour les tests unitaires en terminant la série de tests.
  • Résolution du problème de plantage de VS lors du basculement de la configuration de projet quand le concepteur WinForms .NET Core a des modifications non enregistrées.
  • Les versions de .NET Core qui ne sont plus supportées ne seront plus réinstallées lors d’une réparation ou d’une mise à niveau si elles ont été supprimées en dehors du programme d’installation de Visual Studio.
  • Résolution d’un problème où les dépendances externes n’étaient pas correctement recherchées dans Rechercher dans les fichiers.
  • Réintroduction du bouton « Valider ... » dans le sous-menu Git du menu contextuel de l’Explorateur de solutions.
  • Correction d’un bogue qui faisait que l’étiquette des notes d’archivage TFVC était invisible.
  • Correction du plantage lors de l’utilisation du concepteur WinForm dans un csproj de style SDK avec plusieurs frameworks cibles.
  • Correction du problème où <d:Style.DataContext> signalait une erreur de balisage non valide.

Principaux problèmes de Developer Community corrigés dans Visual Studio 2019 version 16.7.3


Icône Notes de publication Visual Studio 2019 version 16.7.2

mise en production le 18 août 2020

Dans cette mise en production de Visual Studio 2019 version 16.7.2

Principaux problèmes de Developer Community corrigés dans Visual Studio 2019 version 16.7.2


Icône Notes de publication Visual Studio 2019 version 16.7.1

mise en production le 11 août 2020

Dans cette mise en production de Visual Studio 2019 version 16.7.1

Principaux problèmes de Developer Community corrigés dans Visual Studio 2019 version 16.7.1


Icône Notes de publication Visual Studio 2019 version 16.7.0

Date de publication : 5 août 2020

Dans cette version de Visual Studio 2019 version 16.7.0

C++

  • Notre prise en charge de C++ à distance accepte désormais une gamme plus étendue de distributions et shells Linux, notamment sh, csh, bash, tsch, ksh, zsh et dash. Vous pouvez remplacer le choix d’un shell pour une connexion à distance en modifiant la nouvelle propriété « shell » via ConnectionManager.exe. Cette prise en charge a été testée avec des projets Linux basés sur MSBuild et des projets CMake ciblant un système Linux distant ou WSL.
  • Vous pouvez maintenant utiliser Ninja (un système de génération qui évalue très rapidement les builds incrémentielles) afin d’améliorer les temps de génération incrémentielle pour les projets Linux basés sur MSBuild. Vous pouvez choisir cette fonctionnalité en affectant à « Activer la build incrémentielle » la valeur « Avec Ninja » dans la page de propriétés Général. Ninja (ninja-build) doit être installé sur votre système Linux distant ou WSL.
  • Les nouvelles fonctionnalités de bibliothèque standard C++20 ont été implémentées. Pour obtenir une liste détaillée, consultez Journal des modifications STL sur GitHub.
  • Vous pouvez maintenant modifier et définir des connexions SSH à distance par défaut dans le Gestionnaire des connexions. Cela signifie que vous pouvez modifier une connexion à distance existante (par exemple, si son adresse IP a changé) et définir des connexions par défaut à consommer dans CMakeSettings.json et launch.vs.json. Les connexions SSH à distance vous permettent de générer et de déboguer des projets C++ sur un système Linux distant directement à partir de Visual Studio.
Modifier des connexions à distance dans le Gestionnaire de connexions
Modifier des connexions à distance dans le Gestionnaire de connexions
  • Prise en charge améliorée d’IntelliSense pour Clang sur Windows (Clang-CL) dans Visual Studio. Le chemin clang include inclut maintenant les bibliothèques clang, nous avons amélioré l’affichage des tildes dans l’éditeur lors de l’utilisation de la bibliothèque std, et nous avons ajouté la prise en charge de C++2a en mode clang.
  • Vous pouvez maintenant essayer le soulignement des erreurs de code et voir plus de suggestions de correctifs rapides dans les projets C ++. Activez cette fonctionnalité sous Outils > Options > Éditeur de texte > C/C++ > Expérimental > Définir « Désactiver le linter du code expérimental » sur false. Pour en savoir plus, consultez le blog de l’équipe C++.
Linter de code IntelliSense
Linter de code IntelliSense
  • Nous avons ajouté quatre nouvelles règles d’analyse du code pour incorporer des fonctionnalités de sécurité supplémentaires dans C++ : C26817, C26818, C26819 et C26820.
  • Nous avons ajouté une prise en charge de premier ordre pour le débogage des projets CMake sur des systèmes distants avec gdbserver.
  • Recherchez facilement les erreurs d’altération de la mémoire avec une implémentation expérimentale d’AddressSanitizer pour C++ dans Visual Studio, désormais disponible pour les projets x64 natifs. Nous prenons également en charge l’utilisation des runtimes de débogage (/MTd, /MDd, /LDd).
  • IntelliSense offre désormais une prise en charge de base pour les concepts, les initialiseurs désignés et plusieurs autres fonctionnalités de C++20.
  • Les fichiers .ixx et .cppm sont désormais reconnus comme étant du C++, et seront traités comme tels par le surligneur de syntaxe et par IntelliSense.

Définir des playlists de manière dynamique

Vous pouvez maintenant définir des playlists de manière dynamique en fonction du projet, de la classe ou de l’espace de noms. Cela signifie que vous pouvez configurer une playlist pour inclure tous les éléments d’un projet/d’une classe/d’un espace de noms spécifique. Tout nouveau test ajouté à ce groupe sera automatiquement inclus dans votre playlist.

  • Créez une playlist en cliquant avec le bouton droit sur un regroupement de projets, d’espaces de noms ou de classes dans l’Explorateur de tests.
Explorateur de tests : créer une playlist
Explorateur de tests : créer une playlist
  • Modifiez les groupes inclus dans la playlist en cliquant sur le bouton Modifier dans la barre d’outils. Des cases à cocher s’affichent. Modifiez les groupes selon vos besoins.
Explorateur de tests : modifier une playlist
Explorateur de tests : modifier une playlist
  • Au lieu d’être une liste statique de tests, ces playlists sont mises à jour de manière dynamique en fonction des règles. Si vous souhaitez mieux comprendre les règles qui génèrent votre playlist dynamique, enregistrez le fichier de playlist sur disque avec le bouton Enregistrer et affichez les règles générées dans le code xml.
Ensemble de règles dynamiques du fichier de playlist
Ensemble de règles dynamiques du fichier de playlist
  • Vous pouvez continuer à inclure/exclure des tests individuels et la playlist pourra soit mettre à jour ses règles dynamiques, soit revenir en arrière pour assurer le suivi des tests sous forme de liste statique. Vous pouvez également utiliser des caractéristiques pour définir un groupe dynamique en modifiant directement le fichier xml de la playlist.

Productivité Git

Activez/désactivez la fonctionnalité en préversion « Nouvelle expérience utilisateur Git » dans Outils | Options | Environnement pour utiliser cet expérience.

  • Créer un dépôt Git, en commençant par n’importe quel dossier ou un tout nouveau dossier
  • Enregistrer et fermer un dossier ou une solution ouvert(e) avant de démarrer une nouvelle opération de clonage
  • Afficher clairement les erreurs de message de validation ou stash dans la zone de texte de validation
  • Afficher et gérer les branches Git d’une arborescence dans une nouvelle fenêtre de dépôt Git
  • Basculer entre les graphes d’historique de chaque branche et interagir avec ceux-ci dans la fenêtre Dépôt Git
  • Visualiser les commits entrants sortants dans la fenêtre Dépôt Git
  • Blog de l’équipe de productivité Git avec plus de détails sur les fonctionnalités récentes
Gérer les branches et afficher l’historique dans une fenêtre de dépôt Git dédiée
Gérer les branches et afficher l’historique dans une fenêtre de dépôt Git dédiée

Résoudre les conflits de fusion avec un éditeur de fusion concentré sur Git à l’aide de :

  • Une barre d’informations dans les fichiers contenant des conflits de fusion qui vous invite à ouvrir l’éditeur de fusion
  • Des titres et des légendes plus informatifs, et moins d’encombrement dans l’éditeur de fusion
  • Différences dans les conflits qui alignent les lignes correspondantes, affichent les différences au niveau des mots et affichent les espaces blancs visibles lorsqu’il s’agit de la seule différence.
  • Fusions bidirectionnelles pour les conflits d’ajout/ajout au niveau du fichier
  • Possibilité de résoudre tous les conflits en un seul clic
  • Bouton bascule pour se concentrer uniquement sur les conflits, en ignorant les différences non conflictuelles
Nouvelle expérience dans l’éditeur de fusion
Résoudre les conflits de fusion avec l’éditeur de fusion

JavaScript/TypeScript

  • Les implémentations de Completion (Achèvement) et Quick Info (Infos express) ont été mises à jour pour mieux gérer les scénarios LiveShare.

Processus local avec Kubernetes

Processus local avec Kubernetes
Processus local avec Kubernetes

Processus local avec Kubernetes vous permet d’écrire, de tester et de déboguer votre code .NET sur votre station de travail de développement tout en étant connecté à votre cluster Kubernetes avec le reste de votre application ou de vos services. En connectant votre station de travail de développement à votre cluster, vous éliminez le besoin d’exécuter et de configurer manuellement des services dépendants sur votre ordinateur de développement. Les variables d’environnement, les chaînes de connexion et les volumes du cluster sont disponibles pour votre code de microservice exécuté localement. Il n’est pas nécessaire d’avoir des ressources supplémentaires, comme des manifestes Dockerfile ou Kubernetes. Exécutez, déboguez et testez votre code .NET comme vous le feriez normalement.

Pour activer le Processus local avec Kubernetes, accédez à Outils > Options > Environnement > Fonctionnalités d’évaluation et sélectionnez « Activer le débogage local pour les services Kubernetes ».

Activer les fonctionnalités en préversion
Activer les fonctionnalités en préversion

Pour les applications console .NET, une étape supplémentaire est requise. Installez le package NuGet « Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets ».

Productivité .NET

Il existe désormais un avertissement et une correction de code quand un opérateur de suppression est présent, mais n’a aucun effet. Une deuxième correction de code suggérant l’expression d’inversion correcte est également disponible. Placez le curseur sur l’opérateur de suppression. Appuyez sur (Ctrl+. + .) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez ensuite l’une des options suivantes :

  • Pour supprimer complètement l’opérateur, sélectionnez Supprimer l’opérateur (préserve la sémantique) :
Correction de code pour supprimer l’opérateur de suppression
Correction de code pour supprimer l’opérateur de suppression
  • Pour inverser l’expression, sélectionnez Inverser l’expression (change la sémantique) :
Correction de code pour inverser l’expression
Correction de code pour inverser l’expression
  • Vous pouvez également inverser l’expression avec le nouveau modèle not C# 9, s’il est disponible dans votre projet :
Correction de code pour inverser l’expression avec not
Correction de code pour inverser l’expression avec not

Vous pouvez maintenant générer des propriétés lors de la génération d’un constructeur dans un type. Placez le curseur sur l’instance. Appuyez sur (Ctrl+. + .) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Générer le constructeur dans <QualifiedName> (avec les propriétés).

Générer des propriétés lors de la génération du constructeur
Générer des propriétés lors de la génération du constructeur
  • Infos express affiche maintenant l’ID de diagnostic avec un lien d’aide via lequel vous pouvez accéder facilement à notre documentation pour en savoir plus sur les avertissements et les erreurs dans votre code.
Infos express - ID de diagnostic et lien d’aide
Infos express - ID de diagnostic et lien d’aide
  • Il existe maintenant une action rapide pour ajouter un attribut d’affichage de débogueur à une classe. Cela vous permet d’épingler programmatiquement dans le débogueur des propriétés dans votre code. Placez votre curseur sur le nom de la classe. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Ajouter un attribut « DebuggerDisplay ». Cette opération ajoute l’attribut d’affichage du débogueur au début de votre classe et génère une méthode automatique qui retourne ToString() que vous pouvez modifier pour retourner la valeur de propriété que vous souhaitez épingler dans le débogueur.
Ajouter un attribut d’affichage du débogueur
Ajouter un attribut d’affichage du débogueur
  • Il existe désormais un correctif de code pour les affectations ou les comparaisons accidentelles à la même variable. Placez votre curseur sur l’avertissement. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Pour les affectations accidentelles, sélectionnez Affecter à <QualifiedName>.value. Pour les comparaisons accidentelles, sélectionnez Comparer à <QualifiedName>.value.
Correction du code pour les affectations accidentelles
Correction du code pour les affectations accidentelles
Correction du code pour les comparaisons accidentelles
Correction du code pour les comparaisons accidentelles
  • Vous pouvez maintenant générer des opérateurs de comparaison pour les types qui implémentent IComparable. Placez votre curseur à l’intérieur de la classe ou sur IComparable. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Générer des opérateurs de comparaison. Une solution toute faite est générée pour vous avec les opérateurs de comparaison.
Générer des opérateurs de comparaison
Générer des opérateurs de comparaison
  • Vous pouvez maintenant générer des opérateurs IEquatable lors de la génération .Equals pour les structs. Nous avons déjà effectué une refactorisation de Générer Equals et GetHashCode pour les types valeur. Désormais, avec les structs, nous ajoutons automatiquement IEquatable, ainsi que les opérateurs « equals » et « not equals » pour vous. Placez votre curseur dans le struct. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Générer Equals(object).
Générer des opérateurs IEquatable
Générer des opérateurs IEquatable
  • Vous pouvez maintenant créer et assigner des propriétés ou des champs pour tous les paramètres de constructeur inutilisés. Nous avions déjà une action rapide qui vous permettait de faire cela sur un paramètre individuel, mais vous pouvez maintenant effectuer cette opération pour tous les paramètres inutilisés à la fois. Placez le curseur sur l’un des paramètres restants. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Pour créer et initialiser des propriétés, sélectionnez Créer et affecter ce qui reste en tant que propriétés. Pour créer et initialiser des champs, sélectionnez Créer et affecter ce qui reste en tant que champs.
Créer et affecter ce qui reste en tant que champs
Créer et affecter ce qui reste en tant que champs
Créer et affecter ce qui reste en tant que propriétés
Créer et affecter ce qui reste en tant que propriétés
  • L’achèvement IntelliSense est désormais disponible dans les littéraux de chaîne DateTime et TimeSpan. Placez votre curseur à l’intérieur du littéral de chaîne DateTime ou TimeSpan, puis appuyez sur (Ctrl+Espace). Les options d’achèvement s’affichent, ainsi qu’une explication de ce que signifie chaque caractère. Le format date/heure et un exemple sont fournis.
Saisie semi-automatique IntelliSense dans DateTime et TimeSpan
Achèvement IntelliSense dans les littéraux de chaîne DateTime et TimeSpan
  • Vous pouvez maintenant ajouter un paramètre dans la boîte de dialogue Modifier la signature. Placez votre curseur dans la signature de la méthode. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Modifier la signature. La boîte de dialogue suivante s’ouvre, dans laquelle vous pouvez maintenant sélectionner Ajouter pour ajouter un paramètre. Une fois que vous avez sélectionné Ajouter, la nouvelle boîte de dialogue Ajouter un paramètre s’ouvre. La boîte de dialogue Ajouter un paramètre vous permet d’ajouter un nom de type et un nom de paramètre. Vous pouvez choisir de rendre le paramètre obligatoire ou facultatif avec une valeur par défaut. Vous pouvez ensuite ajouter une valeur au site d’appel et choisir un argument nommé pour cette valeur, ou vous pouvez introduire une variable TODO. La variable TODO place un TODO dans votre code afin que vous puissiez consulter chaque erreur et parcourir indépendamment chaque site d’appel, puis décider de ce qui doit être transmis. Pour les paramètres facultatifs, vous avez la possibilité d’omettre complètement le site d’appel.
Boîte de dialogue Modifier la signature
Boîte de dialogue Modifier la signature
Boîte de dialogue Ajouter un paramètre
Boîte de dialogue Ajouter un paramètre
  • Les auteurs de l’analyseur peuvent désormais utiliser CompletionProviders pour les achèvements IntelliSense lors de l’envoi de leurs analyseurs avec NuGet. Auparavant, les auteurs de bibliothèques devaient créer un VSIX distinct, car CompletionProviders était uniquement disponible dans VSIX. Désormais, les auteurs de bibliothèques peuvent implémenter des achèvements IntelliSense dans le package NuGet où se trouvent les analyseurs, et ils n’ont pas besoin de le faire séparément. Les fournisseurs d’achèvement implémentés dans les packages NuGet fournissent également des suggestions spécifiques aux projets individuels et fonctionnent automatiquement dans chaque IDE qui prend en charge la fonctionnalité.

Razor

Essayez le nouvel éditeur Razor reposant sur le nouveau protocole expérimental LSP (Language Server Protocol) avec tous les fichiers Razor (.cshtml/.razor) en sélectionnant la fonctionnalité en préversion Activer l’éditeur Razor expérimental.

Explorateur de tests

Les commandes Exécuter/Déboguer tous les tests de la vue ont été ajoutées à l’Explorateur de tests. Ces commandes remplacent les commandes Exécuter tous les tests et Déboguer tous les tests qui apparaissaient dans l’Explorateur de tests. Cette modification clarifie la façon dont ces commandes respectent les filtres de l’Explorateur de tests afin que seuls les tests visibles dans la fenêtre soient exécutés. Cela comprend les filtres de colonne et les filtres de zone de recherche.

Commandes Exécuter/Déboguer tous les tests dans la vue pour l’Explorateur de tests
Commandes Exécuter/Déboguer tous les tests dans la vue pour l’Explorateur de tests

Les commandes Exécuter/Déboguer tous les tests s’affichent désormais uniquement dans le menu de test de niveau supérieur. Elles ne sont plus incluses dans la barre d’outils de l’Explorateur de tests ou dans le menu contextuel des vues de fenêtre de test. Lorsqu’elle est déclenchée à partir de l’Explorateur de tests, la commande Analyser la couverture du code pour tous les tests s’applique désormais également aux vues de la fenêtre de test.

Touches de raccourci :

  • Ctrl R, A - Exécuter tous les tests - La commande globale exécute toujours tous les tests
  • Ctrl R, V - Exécuter tous les tests dans la vue - Commande uniquement valide lorsqu’une fenêtre de test (Explorateur de tests, liste de lecture, fenêtre Live Unit Testing) est active
  • Ctrl R, Ctrl A - Déboguer tous les tests - La commande globale débogue toujours tous les tests
  • Ctrl R, Ctrl V - Déboguer tous les tests dans la vue - Commande uniquement valide lorsqu’une fenêtre de test (Explorateur de tests, liste de lecture, fenêtre Live Unit Testing) est active

Débogueur

Visualisation d’objets COM managés via des pointeurs natifs

Cette fonctionnalité décode automatiquement les objets COM managés référencés par des pointeurs natifs, ce qui vous permet d’inspecter entièrement les valeurs dans la fenêtre Variables locales. Vous trouverez plus de détails sur cette fonctionnalité ici, sur le blog Visual Studio.

Profileur

Nouvel outil Compteurs de performances .NET

Outil Compteurs de performances .NET
Outil Compteurs de performances .NET

Visualisez des compteurs .NET directement dans le profileur Visual Studio en utilisant l’outil Compteurs de performances .NET. Pour tester l’outil, accédez à Déboguer -> Profileur de performances -> Cochez Outil Compteurs de performances .NET.

Xamarin

  • Des correcteurs de code ont été introduits pour les types de problèmes les plus courants rencontrés par les utilisateurs avec des fichiers de disposition Android.
  • L’expérience de sélection de modèles Xamarin.Forms a maintenant un nouvel aspect plus expressif, et les modèles de menu volant et à onglets utilisent désormais Shell. Découvrez plus en détail Shell ici. Si, pour une raison quelconque, vous ne souhaitez pas utiliser Shell, employez le modèle vide.
Nouvelle expérience de sélection de modèle Xamarin.Forms
Choix d’un modèle Xamarin.Forms

Outils XAML (WPF, UWP et Xamarin.Forms)

Rechargement à chaud XAML :

  • Amélioration de la barre d’outils dans l’application : Nous avons encore affiné l’expérience de la barre d’outils dans l’application qui fait partie du flux de travail de l’outil Rechargement à chaud XAML pour WPF et UWP. Les modifications incluent une barre d’outils plus courte qui ne couvre plus l’application en cours d’exécution, et un changement du mécanisme de réduction qui, quand vous cliquez dessus, réduit d’abord le texte de rechargement à chaud XAML, puis réduit entièrement la barre lors du deuxième clic.

Concepteur XAML :

  • Prise en charge étendue des données de conception pour WPF et UWP : Dans cette version, nous introduisons une nouvelle fonctionnalité de données de conception pour les développeurs WPF .NET Core et UWP. Cette nouvelle fonctionnalité étend la liste actuelle des propriétés au moment du design accessibles à l’aide du préfixe d:. Cette fonctionnalité sera familière aux développeurs Xamarin.Forms, car elle permet la même approche de l’utilisation d’un préfixe « d: » pour indiquer une propriété qui doit être rendue seulement au moment du design et qui n’est jamais compilée dans l’application en cours d’exécution, ce qui rend son utilisation très sûre pour la validation de l’interface utilisateur au moment de la conception. Dans cette version, nous prenons en charge tous les contrôles prêts à l’emploi pour WPF et UWP, et nous prévoyons de prendre en charge des contrôles tiers et personnalisés dans les futures versions.
  • Bouton d’actualisation de XAML : nous avons ajouté un bouton d’actualisation au concepteur XAML ; cette nouvelle icône se trouve dans la zone d’icône en bas à gauche près de l’indicateur de niveau de zoom. Cette action d’actualisation produit la réinitialisation équivalente de la fermeture du mode concepteur et de sa réouverture pour les rares cas où cela est nécessaire afin de résoudre un problème de rendu. Cette fonctionnalité est disponible pour les développeurs WPF .NET Core et UWP.

Éditeur de code XAML :

  • Visualiseur de couleur : nous avons encore affiné notre nouveau visualiseur de couleur dans l’éditeur de code XAML pour les projets WPF .NET Core, WPF .NET Framework et Xamarin.Forms. Dans cette version, nous avons ajouté la prise en charge de la visualisation des couleurs provenant des ressources, qui n’existait pas dans la dernière préversion.
Aperçus des couleurs inline dans l’éditeur de code XAML
Aperçus des couleurs inline dans l’éditeur de code XAML

Afficher les éléments de boîte à outils à partir d’un package NuGet sans avoir de référence de package

Afin de faciliter la découverte, de nombreux auteurs de bibliothèque de contrôles veulent que leurs contrôles apparaissent dans la boîte à outils même si le projet actuel n’a pas encore référencé la bibliothèque. Historiquement, les kits SDK .NET Framework WPF ont toujours effectué cela à l’aide des entrées de registre, mais cela n’est pas pris en charge par .NET Core. Pour .NET Core WPF, la boîte à outils peut désormais être remplie avec des contrôles à partir de fichiers VisualStudioToolsManifest.xml trouvés dans les packages NuGet .NET Core WPF dans les dossiers de secours NuGet. Pour plus d’informations, consultez la documentation du dépôt GitHub d’extensibilité du concepteur XAML.

Windows Forms

Concepteur Windows Forms pour .NET Core

Le concepteur Windows Forms pour les projets .NET Core est désormais disponible. Pour activer le concepteur dans Visual Studio, allez dans Outils > Options > Environnement > Fonctionnalités en préversion, et sélectionnez l'option Utiliser l'aperçu du concepteur de formulaires Windows pour les applications .NET Core.

Dans cette version, les contrôles suivants sont désormais pris en charge, et d’autres améliorations ont été apportées :

  • Infrastructure des contrôles personnalisés et UserControl
  • TableLayoutPanel
  • Notions de base pour la prise en charge des contrôles tiers
  • Notions de base de la prise en charge de la liaison de données
  • Améliorations de l’interaction du concepteur avec TableLayoutPanel

Corrections de bogues

Principaux problèmes résolus dans Visual Studio 2019 version 16.7.0

  • Résolution de l’échec de l’installation du composant du fournisseur WMI.
  • Résolution d’un problème où les utilisateurs ne pouvaient pas voir la progression d’une série de tests en cliquant sur le bouton gauche situé dans le bas de la barre.
  • Amélioration des performances de la découverte des plans de facturation Visual Studio Codespace disponibles.
  • Lors de la création d’un Visual Studio Codespace, nous avons changé l’heure de mise en pause par défaut de 30 minutes en 3 heures.
  • Correction du bogue où la fenêtre des modifications Git informe l’utilisateur qu’il a des validations entrantes/sortantes, alors qu’il n’en a en fait aucune.
  • Stabilité améliorée pour les outils de diagnostic et le profileur de performances.
  • Résolution d’un problème où l’extension Visual Studio d’Azure Sphere n’était pas mise à jour automatiquement en raison d’une non-correspondance de version mineure. Avec le correctif, Azure Sphere peut être mis à jour automatiquement lors de l’exécution de l’utilitaire de mise à jour automatique VSIX.

À partir de Developer Community


Problèmes connus

Consultez tous les problèmes ouverts et les solutions de contournement disponibles dans Visual Studio 2019 en suivant le lien ci-après.

Commentaires et suggestions

Nous sommes à votre écoute ! Pour tout problème, signalez-les en utilisant l’option Signaler un problème en haut à droite du programme d’installation ou de l’IDE Visual Studio. L’icône Icône Commentaires se trouve en haut à droite. Vous pouvez faire une suggestion de produit ou suivre vos problèmes sur le site Visual Studio Developer Community, où vous pouvez poser des questions, trouver des réponses et proposer de nouvelles fonctionnalités. Vous pouvez également obtenir une aide gratuite pour l’installation via notre support Live Chat.


Blogs

Tirez parti des insights et des recommandations disponibles sur le site Developer Tools Blogs pour rester informé de toutes les nouvelles versions Release et des publications contenant des informations approfondies sur un large éventail de fonctionnalités.


Historique des notes de publication de Visual Studio 2019

Pour plus d’informations sur les versions précédentes de Visual Studio 2019, consultez la page Historique des notes de publication de Visual Studio 2019.


Haut de page