2019LogoNotes de publication sur Visual Studio 2019 version 16.10



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.



Nouveautés dans Visual Studio 2019 version 16.10

Délai de prise en charge

Cette version n’est plus prise en charge. Pour plus d’informations sur la prise en charge de Visual Studio, consultez la Stratégie de prise en charge 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.

Mises en production de Visual Studio 2019 version 16.10

Notes de publication archivées de Visual Studio 2019

Blog Visual Studio 2019

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


16.10.5 Visual Studio 2019 version 16.10.5

publiée le 10 août 2021

Résumé des nouveautés de cette mise en production de Visual Studio 2019 version 16.10.5

Cette version de Visual Studio 2019 est disponible uniquement via Windows Software Update Service (WSUS).

Principaux problèmes résolus dans cette version

  • Le simulateur distant iOS fonctionne désormais correctement avec les appareils Mac appariés sur lesquels Xcode 12.4 ou 12.5 est installé. Les fonctionnalités de simulateur Xcode suivantes ne sont pas disponibles lorsqu’elles sont associées à des appareils Mac avec Xcode 12.4, ou une version ultérieure, installé :
    • Avertissement de mémoire simulée
    • Emplacements simulés

Avis de sécurité Microsoft

CVE-2021-26423 Vulnérabilité de déni de service dans .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-34485Vulnérabilité de divulgation d’informations dans .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-34532Vulnérabilité de divulgation d’informations dans .NET Core

Une vulnérabilité de divulgation d’informations existe, où un jeton JWT est journalisé s’il ne peut pas être analysé.

16.10.4 Visual Studio 2019 version 16.10.4

Publication : 20 juillet 2021

Résumé des nouveautés de cette mise en production de Visual Studio 2019 version 16.10.4

Principaux problèmes résolus dans cette version

  • Suppression de l’utilisation des registres non autorisés dans memset.
  • Correction d’un bogue codegen impliquant des expressions imbriquées complexes impliquant l’opérateur de bits Not.
  • Correction du débogage du nuanceur pour VS Graphics Analyzer
  • Correction d’un incident IntelliSense qui s’est produit lors du traitement des membres de données statiques dans des spécialisations de modèle en classe.
  • X64 VC Redist ne supprime plus les fichiers runtime lors de l’exécution avec les commutateurs /installer /passive.
  • Correction d’un problème dans lequel l’ordre de recherche Include peut être incorrect lorsqu’il est ajouté aux « Répertoires Include ».
  • Nous avons résolu le problème de performances et les faux positifs causés par l’une des extensions de vérificateur qui détectent des bogues en cas d’utilisation incorrecte des VARIANT.
  • Nous avons résolu le problème de performances provoqué par l’une des extensions de vérificateur qui détecte des bogues en cas d’utilisation incorrecte des valeurs d’énumération en tant qu’index.
  • Présente le correctif des services de langues Live Share qui restaure les principales fonctionnalités de modification de code pour les participants à la session de collaboration (complétion du code, mise en surbrillance de la syntaxe, erreurs, etc.)
  • L’analyseur de concurrence ne doit plus produire de faux avertissements C26110 (échec de l’acquisition du verrou) avec des modèles de verrouillage automatique.
  • Les compilateurs C# et Visual Basic ont corrigé un incident impliquant InternalsVisibleTo en conflit avec d’autres attributs au niveau de l’assembly.
  • Nous avons résolu un problème rencontré par les clients qui empaquetaient leurs projets avec des projets de création de packages d’applications Windows, tels que des applications WPF NetCore et des applications Project Reunion :

Fichier de ressources d’erreur '...\obj\wappublish\win10-x86\project.assets.json' introuvable. Exécutez une restauration de package NuGet pour générer ce fichier. App4 (Package) C:\Program Files\dotnet\sdk\5.0.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 242

Ce problème était dû au fait que le projet d’empaquetage recherche le fichier project.assets.json dans le mauvais répertoire, win10-$(configuration), quand il doit rechercher dans win-$(configuration).

À partir de Developer Community


16.10.3 Visual Studio 2019 version 16.10.3

Publication : 29 juin 2021

Résumé des nouveautés de cette mise en production de Visual Studio 2019 version 16.10.3

Principaux problèmes résolus dans cette version

  • Résolution d’un problème où la fonction Atteindre la définition sur les symboles importés à partir de modules passe parfois au début du fichier de module plutôt qu’à la définition du symbole.
  • Correction d’un problème où les développeurs malvoyants rencontraient des difficultés à identifier le focus sur l’écran, car le rapport de luminosité de la couleur de la bordure est inférieur à 3:1 pour la zone de texte.
  • Correction du projet de base de données : le glissement d’un fichier à partir de l’explorateur de solutions vers un fichier ouvert supprime le fichier du système de fichiers.
  • Correction d’un problème où l’utilisation d’une instruction de fusion dans les projets de base de données entraîne des erreurs de génération.
  • Les chemins d’accès au disque ne sont plus envoyés lorsqu’il s’agit de signaler les extensions installées.
  • Corrige un problème où la tentative de fermeture de la fenêtre de démarrage rapide peut entraîner le plantage de Visual Studio.
  • Résolution d’un problème où l’affichage des fenêtres d’outils bloque parfois VS.
  • Correction de C++ Modifier et Continuer dans le code utilisateur lorsque des symboles générés par G++/GCC non liés sont chargés dans l’application.
  • Corrige les utilisations du sélecteur privé à partir de l’infrastructure iAd.
  • Correction d’un incident dans VS qui résulte d’erreurs survenues dans le Concepteur XAML
  • Correction d’un problème avec les projets de création de packages d’applications Windows qui référencent des projets .netcoreapp générant un fichier .msixbundle.
  • Correction d’une défaillance de vérification de mise à jour rapide des projets WAP qui entraîne la génération de ces projets (au lieu d’être ignorés), même si le projet est à jour et n’a pas besoin de modifications, ce qui provoque à nouveau une augmentation des temps de génération incrémentiels dans l’environnement de développement intégré (IDE).

À partir de Developer Community


16.10.2 Visual Studio 2019 version 16.10.2

Publication : 15 juin 2021

Résumé des nouveautés de cette mise en production de Visual Studio 2019 version 16.10.2

Principaux problèmes résolus dans cette version

  • Les contrôles d’accès concurrentiel dans l’analyse du code sont plus intelligents. Ils sont plus difficiles à tromper avec un flux de contrôle complexe.
  • Ce correctif restaure le comportement des en-têtes externes en ignorant l’analyse des en-têtes externes et en supprimant les avertissements des en-têtes externes.
  • Correction des fichiers .aspx/ascx où les utilisateurs peuvent voir IntelliSense incomplet ou subir des lenteurs.
  • Correction des problèmes de scalabilité avec le fournisseur Unity CodeLens lorsque l’on travaille sur de gros projets.
  • Rétablissement des chaînes traduites dans la page des options d’authentification du service Azure.
  • Correction des problèmes d’affichage de code visuel intermittent lors de l’utilisation de l’extension Resharper.
  • Correction d’un problème où certaines fenêtres d’outils, certains éditeurs et certains concepteurs étaient trop petits pour afficher du contenu.
  • Corrige les problèmes d’icône d’application manquante de Xamarin iOS, soit lors de l’exécution d’une application, soit lors de sa tentative de publication sur l’App Store.
  • La création de projets avec AOT+LLVM n’échoue plus avec une erreur XA3001.
  • Après la mise à niveau vers Visual Studio 2019 version 16.10, dans certaines circonstances, la publication d’applications UWP peut échouer avec le message d’erreur « Le nom de ressource spécifié est introuvable dans le fichier image ». Ce problème est maintenant résolu.
  • Correction d’un problème entraînant l’arrêt de la réponse de Visual Studio 2019 lorsque la configuration de l’appareil change.
  • Correction de trois problèmes dans MSBuild :
    • Évite les erreurs MSB4017 lors de la génération dans Azure DevOps.
    • $([MSBuild]::MakeRelative()) conserve à nouveau les barres obliques finales dans son entrée.
    • Exclusion des globs avec un motif ** de fin, exclure à nouveau les fichiers sans . caractères

À partir de Developer Community


16.10.1 Visual Studio 2019 version 16.10.1

publication : 08 juin 2021

Résumé des nouveautés de cette mise en production de Visual Studio 2019 version 16.10.1

Principaux problèmes résolus dans cette version

  • Correction d’un problème à l’origine d’un incident avec le compilateur IntelliSense.
  • Correction d’un problème qui pouvait entraîner la fermeture d’instances Visual Studio 2019 si l’Explorateur de tests est ouvert dans la solution.
  • Correction d’un échec lorsque les développeurs généreraient des solutions partielles à partir de la ligne de commande.
  • Correction d’un échec dans ClickOnce Publish pour les applications .NET Core.
  • Résolution d’un problème où la fenêtre de pile des appels peut bloquer Visual Studio 2019.
  • Correction de l’erreur de build « Impossible de trouver le fichier de métadonnées '***\bin\Debug\NativeLibrary.dll' » lors de la génération de projets de liaison iOS.

Avis de sécurité Microsoft

CVE-2021-31957 Vulnérabilité de déni de service dans ASP.NET

Il existe une vulnérabilité de déni de service quand ASP.NET Core gère incorrectement la déconnexion du client.

À partir de Developer Community


16.10.0 Visual Studio 2019 version 16.10.0

Publication : 25 mai 2021

Résumé des nouveautés de cette mise en production de Visual Studio 2019 version 16.10.0

C++

  • Toutes les fonctionnalités C++20 sont désormais disponibles sous le switch /std:c++latest. Bien que l’implémentation par MSVC des normes C++20 (telles qu’actuellement publiées par ISO) soit pleinement fonctionnelle, certaines fonctionnalités clés de la bibliothèque C++20 sont censées être amendées par de prochains rapports de défauts (correctifs de bogues ISO C++20) susceptibles de les modifier d’une manière incompatible avec ABI. Pour plus d’informations, consultez Microsoft/STL Issue #1814.
    • Fonctions immédiates C++20 et prise en charge de constinit ajoutées dans la version 16.10
    • Pièces finales de <chrono>: nouvelles horloges, secondes intercalaires, fuseaux horaires et analyse
    • Implémentation de <format> pour la mise en forme du texte
  • /openmp:llvm est désormais disponible sur x86 et ARM64, en plus de x64
  • Les répertoires Include peuvent désormais être désignés comme externes avec des niveaux d’avertissement de compilation personnalisés et des paramètres d’analyse du code.
  • Ajout du switch /await:strict pour activer les coroutines de style C++20 dans les modes de langage antérieurs.
  • La visualisation du débogueur de std::coroutine_handle<T> affiche désormais le nom et la signature de la fonction de coroutine d’origine, ainsi que le point de suspension actuel.
  • Ajout de la prise en charge de CMakePresets.
  • Vous devez maintenant accepter ou refuser l’empreinte digitale de la clé hôte présentée par le serveur lors de l’ajout d’une nouvelle connexion à distance dans Visual Studio.
  • Ajout d’un commutateur /external à MSVC pour spécifier des en-têtes qui doivent être traités comme externes à des fins d’avertissement.

Améliorations apportées aux outils Docker

  • Possibilité de créer un profil de lancement qui configure les services à démarrer dans votre fichier Compose.
  • Possibilité d’étiqueter une image.
  • Ajout d’un onglet Volumes pour les conteneurs.
  • Ajout d’un onglet Étiquettes pour les conteneurs.
  • Ajout d’un onglet Étiquettes pour les images.
  • Les conteneurs sont désormais regroupés par projet Compose.

Éditeur

  • Pour les personnes qui souhaitent une expérience moins chargée, l’espacement des lignes peut être modifié en recherchant « espacement de ligne » dans la recherche Visual Studio (Ctrl+Q). L’option se trouve sous Éditeur de texte\Général.
  • Les fonctions Rechercher dans les fichiers et Rechercher toutes les références disposent d’un contrôle permettant de conserver les résultats. En fonction des commentaires de notre communauté, nous avons ajouté une option pour activer l’option « Conserver les résultats » par défaut. Cette option est disponible en recherchant « Conserver les résultats de recherche par défaut » dans la recherche Visual Studio (Ctrl+Q). L’option se trouve sous Environnement\Rechercher et Remplacer. Notez que les utilisateurs sont actuellement limités à 5 résultats pour la fonction Rechercher dans les fichiers et 5 résultats supplémentaires pour la fonction Rechercher toutes les références.
  • Une nouvelle option dans la fonction Rechercher dans les fichiers permet aux utilisateurs d’exécuter des recherches supplémentaires et d’ajouter ces résultats à une recherche précédente.

Extensibilité de l’éditeur

  • Le comportement du code qui gère IntraTextAdornmentTags a changé. Avec cette modification, comme avec n’importe quel autre ITagger, vous devez déclencher un événement de modification des étiquettes lorsque les étiquettes sous-jacentes changent. Dans le cas contraire, il se peut que vos étiquettes ne soient jamais mises à jour.

débogage et diagnostics

  • L’analyse de diagnostic des images mémoire inclut désormais des images mémoire centrales Linux managées.

Productivité Git

  • Accédez au web avec des liens profonds pour créer une demande de tirage (pull request) et afficher des demandes de tirage sur GitHub ou Azure DevOps à partir du menu Git.
  • Validez les branches locales et distantes avec une sélection unique dans le sélecteur de branches.
  • Supprimez les éléments du sélecteur de référentiels via le menu contextuel.
  • Activez le chargement automatique de la solution lors de l’ouverture d’un référentiel Git via les paramètres > Git.
  • Activez/désactivez le comportement de double-clic pour extraire les branches de la fenêtre de référentiel Git via les paramètres > Git.
  • Synchronisez (Extraire puis Envoyer) votre branche avec plusieurs dépôts distants à partir du menu dépassement de capacité de la fenêtre Modifications Git.
  • Personnalisez vos actions de barre d’outils visibles de la fenêtre Modifications Git (Récupérer, Extraire, Envoyer, Synchroniser) dans le menu de dépassement de capacité.
  • Ouvrez votre référentiel dans le navigateur à partir du menu dépassement de capacité de la fenêtre Modifications Git.
  • Recherchez et extrayez des branches locales et distantes à partir de la barre d’état.
  • Recherchez et basculez entre les référentiels Git locaux à partir de la barre d’état.
  • Correction d’un problème où la liste des référentiels locaux dans le menu Git ne se chargeait pas lors du lancement de Visual Studio.
  • Ajoutez des sous-référentiels de projet imbriqués à votre liste de référentiels locaux lors de l’ouverture d’un référentiel.
  • Laissez la solution ouverte lors du basculement de référentiels via les paramètres > Git.
  • Désactivez le dossier ouvert lors de l’ouverture de référentiels via les paramètres > Git.
  • Synchronisez votre branche avec le dépôt distant à partir du bouton Validations n’ayant pas fait l’objet d’un push dans la barre d’état et à partir de la commande Synchroniser dans le menu Git.
  • Récupérez et extrayez à partir du volet d’historique de la fenêtre Référentiel Git, même s’il n’y a pas de validations entrantes.
  • Affichez les détails de validation et la comparaison des modifications de fichier incorporées dans la fenêtre Référentiel Git.
  • Connectez-vous ou invitez automatiquement pour établir une connexion Azure DevOps initiale lors de l’ouverture d’un référentiel Git Azure DevOps.
  • Fusionnez et rebasez avec des noms de branche visibles, en remplaçant la terminologie source/cible déroutante.
  • Amélioration des performances et de la fiabilité des glyphes de contrôle de code source dans l’Explorateur de solutions.
  • Conservez les sections entrantes/sortantes dans la fenêtre Référentiel Git, même lorsqu’elles sont vides.
  • Listes déroulantes Récupérer/Extraire/Envoyer consolidées pour plusieurs dépôts distants dans la fenêtre Modifications Git vers un menu unique Action.

Productivité .NET

  • Complétion d’arguments dans les appels de méthode
  • Interface utilisateur Editorconfig
  • Inspecter visuellement et naviguer dans la chaîne d’héritage
  • Complétion IntelliSense pour les casts, les indexeurs et les opérateurs
  • Prise en charge du débogueur pour les générateurs sources
  • Prise en charge du nettoyage du code pour Visual Basic
  • Mises à jour de Modifier et Continuer (EnC)
  • Supprimer les références inutilisées
  • Saut de ligne intelligent
  • Simplifier la refactorisation d’expressions LINQ
  • Complétion IntelliSense pour les valeurs Enum
  • Paramètre du mode de complétion IntelliSense
  • Préférence de style de code pour les nouvelles lignes
  • Prise en charge de la fonction Rechercher toutes les références pour les générateurs sources

Éditeur de préversion Razor (ASP.NET Core)

  • Mises à jour de la complétion IntelliSense
  • Prise en charge de la fonction Atteindre la définition pour les composants génériques
  • Nouvelle configuration de style de code pour les onglets et les espaces
  • L’éditeur de texte Razor dans les options d’outils est maintenant appelé Razor (ASP.NET Core)

Améliorations apportées à l’accessibilité de l’expérience de test

  • Console.Writeline s’affiche maintenant dans l’Explorateur de tests
  • La sortie de test peut désormais conserver les étiquettes afin que les liens hypertexte et les liens stacktrace soient navigables même à partir des fichiers journaux.
  • Les fichiers journaux sont créés pour un résultat de test unique lorsque la sortie est supérieure à 300 caractères ou s’il y a plus de 10 fichiers attachés au résultat du test.
  • Les fichiers journaux peuvent également s’ouvrir en prévisualisation pour faciliter la gestion de vos onglets.
  • Les fichiers journaux et l’Explorateur de tests prennent en charge Ctrl + Flèche haut/Flèche bas pour déplacer le curseur et Maj + Ctrl + Flèche haut/Flèche pour la sélection.
  • L’éditeur de fichiers journaux utilise désormais l’interface IVsTextView, ce qui signifie qu’il sera désormais en mesure d’ouvrir des fichiers texte très volumineux. Les utilisateurs n’auront donc plus besoin de Copy All tronquer les journaux et de les ouvrir dans un éditeur distinct tel que le Bloc-notes. Pour MSTest, nous incluons désormais un seul fichier journal qui agrège toutes les sorties au lieu d’avoir uniquement des fichiers journaux individuels pour chaque ligne de données.
  • Vous pouvez désormais obtenir une couverture du code multiplateforme sur la ligne de commande sur Ubuntu et Alpine avec l’interface CLI dotnet. Pour les utilisateurs intéressés par l’obtention de la couverture du code sur les machines ciblant ces plateformes, vous pouvez désormais ajouter les mêmes commandes de collecte de couverture de code que celles que vous utiliseriez normalement sur Windows. Consultez la documentation supplémentaire pour le test dotnet.
  • Il existe maintenant un bouton Développer tout en regard du bouton Réduire tout dans l’Explorateur de tests. Cette commande était disponible par le biais de raccourcis clavier (Ctrl + A, Ctrl + flèche droite), mais les commentaires ont montré que l’ajout d’un bouton valait la peine. Comme toujours, merci de nous informer de ce que vous pensez via https://developercommunity.visualstudio.com/.
  • Il existe également de légères modifications sur la façon dont l’Explorateur de tests affiche « l’obsolescence ». « L’obsolescence » désigne les résultats de test grisés ou « décolorés » qui indiquent que le résultat n’est pas issu de la dernière série de tests. Si un résultat n’est pas une partie de la série de test la plus récente, il apparaît comme obsolète. Auparavant, de nouvelles découvertes de tests (ou même d’anciens résultats de test redécouverts) étaient également affichées avec des icônes pleines. Cela a provoqué une certaine confusion sur la raison pour laquelle certains tests « Non exécutés » étaient décolorés et pourquoi d’autres ne l’étaient pas. Ce changement réduira la complexité de l’obsolescence.
  • Avec la fonctionnalité des résultats de test persistants (ajoutée dans la version 16.2), vous pouvez voir les résultats des tests à partir de la dernière série de tests, même si vous avez fermé et rouvert Visual Studio. Cela permet aux utilisateurs de se rappeler où ils se sont arrêtés et de donner plus de contexte sans nécessiter une autre exécution de test. Nous avons également modifié le comportement des résultats persistants afin qu’ils apparaissent toujours obsolètes. Cela indique mieux qu’ils ne proviennent pas d’une série de tests exécutée pendant la session Visual Studio actuelle.

Outils Web :

  • Passer à la version 2 de l’API pour l’approvisionnement Azure AD
  • Azure App Configuration en tant que service connecté prend désormais en charge la configuration dynamique

Arborescence des dépendances du projet de création de packages d’applications Windows

  • Ajout d’une « Arborescence des dépendances » au projet WAP

Améliorations des outils XAML

  • Amélioration de XAML IntelliSense et du rechargement à chaud XAML pour les clients Xamarin.Forms
  • Introduction des exemples de données XAML pour sélectionner ItemsControls dans WPF
  • Ajout d’une nouvelle ampoule pour un accès rapide aux propriétés couramment modifiées
  • Ajout d’une nouvelle ampoule dans l’éditeur XAML pour vous aider à créer un modèle d’affichage

Service Fabric Tools

  • Présentation de StartupServices.xml dans les applications Service Fabric

Détail des nouveautés dans Visual Studio 2019 version 16.10

Outils Docker

Fenêtre Outil de conteneurs

Dans cette version, nous avons apporté des ajouts à la fenêtre de Outil de Conteneurs pour faciliter l’affichage et l’interaction avec les conteneurs et les images. Accédez simplement à Afficher > Autres fenêtres Conteneurs> pour essayer les nouvelles fonctionnalités.

  • Les conteneurs sont désormais regroupés par projet Compose. Cela permet de savoir facilement quels conteneurs représentent votre application. Nous avons également ajouté un onglet Étiquettes dans Conteneurs pour voir facilement les étiquettes que vous utilisez pendant le développement.

Compose grouping option and containers label tab

  • Nous avons également ajouté un onglet Étiquettes pour les images.

Images Label tab

  • Le nouvel onglet Volumes vous permet de voir les volumes d’un conteneur en cours d’exécution et même d’ouvrir les fichiers dans Visual Studio.

Container Volumes tab

  • Nous prenons désormais en charge la possibilité d’étiqueter une image à partir de la fenêtre Outil de Conteneurs. Dans Images, cliquez avec le bouton droit sur une image, puis sélectionnez Étiquette.

Tagging an image

Composer.
  • Les outils Docker Compose dans Visual Studio permettent désormais d’exécuter n’importe quelle combinaison de services définis dans vos fichiers Compose. Ouvrez la liste déroulante Débogage ou cliquez avec le bouton droit sur votre projet Docker Compose, puis sélectionnez Gérer les paramètres de lancement de Docker Compose pour commencer.

Manage Docker Compose Launch Settings

Productivité Git

  • Pour créer plus facilement des demandes de tirage pendant que vous êtes dans Visual Studio, nous avons ajouté des éléments de menu qui sont des raccourcis de lien profond vers les pages web qui vous permettent de créer une demande de tirage ou d’afficher une liste de demandes de tirage pour votre référentiel. Le menu est dynamique selon que votre référentiel se trouve sur GitHub ou Azure DevOps.

Create a PR and view list of PRs on the web from the Git menu

  • Le sélecteur de branche dans la barre d’état et la fenêtre Modifications Git extrait désormais une branche locale ou distante lorsque vous faites une sélection unique de la branche. Vous trouverez des actions supplémentaires dans le menu contextuel.

Left click to check out a branch and right click for additional actions

  • Le nouveau sélecteur de référentiels dans la barre d’état a un menu contextuel en cliquant avec le bouton droit qui vous permet de supprimer des éléments de la liste.

Remove items from the repository picker list through the context menu

  • Lorsque vous utilisez le sélecteur de référentiels ou la liste référentiels locaux du menu Git, l’ouverture d’un référentiel ne charge plus automatiquement la solution. Vous verrez à la place l’affichage des dossiers et la solution disponible dans une liste dans laquelle vous pouvez effectuer une sélection. Vous pouvez modifier ce comportement via les paramètres > Git décochant la case.

  • Vous pouvez choisir d’extraire une branche à partir de la fenêtre Référentiel Git en double-cliquant sur le nom de la branche. Si vous souhaitez modifier ce comportement, activez la case à cocher dans les paramètres > Git.

Settings to toggle auto-sln load and branch check out.

  • Vous pouvez effectuer encore plus d’actions à partir de la fenêtre Modifications Git. Les icônes de la barre d’outils sont personnalisables et vous pouvez choisir les actions à afficher. Vous pouvez synchroniser avec plusieurs dépôts distants à partir du menu de dépassement de capacité. Vous pouvez également ouvrir la page web distante de votre référentiel dans le navigateur.

Git Changes overflow menu with callouts to Sync, open in browser, and toolbar actions.

  • Recherchez des branches locales et distantes et effectuez des actions de branche courantes à partir du sélecteur de branche de la barre d’état.

Branch picker in the status bar.

  • Recherchez et basculez entre les référentiels Git locaux à partir du sélecteur de référentiels de la barre d’état.

Repo picker in the status bar.

  • Correction d’un problème où la liste des référentiels locaux dans le menu Git ne se chargeait pas lors du lancement de Visual Studio.
  • Nous avons ajouté deux nouvelles options dans les paramètres > Git pour gérer la façon dont vous ouvrez et changez de référentiels. Vous pouvez désormais garder la solution actuelle ouverte lors du basculement vers un autre référentiel

Setting to keep solution open.

  • Vous pouvez également choisir de ne pas charger le dossier racine du référentiel lors de l’ouverture d’un référentiel.

Setting to open the folder

  • Synchronisez (Extraire puis Envoyez) votre branche avec le dépôt distant à partir du bouton Validations n’ayant pas fait l’objet d’un push dans la barre d’état et à partir de la commande Synchroniser dans le menu Git.

Sync button in the status bar.

  • Récupérez et extrayez à partir du volet d’historique de la fenêtre Référentiel Git, même s’il n’y a pas de validations entrantes. Accédez à ces sections à partir de la barre d’état ou du raccourci clavier Ctrl + 0 + Y.

Incoming section in Git Repository window with a callout to fetch and pull buttons.

  • Sélectionnez une validation dans la fenêtre Référentiel Git pour afficher ses détails et la comparaison des modifications de fichier sans avoir à accéder à d’autres fenêtres. Sélectionnez deux validations et cliquez avec le bouton droit pour les comparer dans la même fenêtre. Les détails sont affichés dans leur propre fenêtre en plein écran, ce qui permet d’approfondir les modifications.

Embedded commit details and file comparison in Git Repository window.

  • Affichez le nombre de suppressions et d’insertions dans un fichier et modifiez la disposition de la comparaison.

Popped out Commit window with callouts to number of file changes and layout view buttons in toolbar

  • Connectez-vous ou invitez automatiquement pour établir une connexion Azure DevOps initiale lors de l’ouverture d’un référentiel Git Azure DevOps. Cela permet d’accéder aux éléments de travail et aux builds pour le référentiel ouvert.

Info bar in Git Changes window prompting you to connect to Azure DevOps for the current repository.">

  • Lors de la résolution des conflits de rebase ou de fusion, l’éditeur de fusion et le menu contextuel affichent les noms de branche pour les branches Actuelles et Entrantes. Cela résout la terminologie Source et Cible déroutante.

Context menu when resolving conflicts displays the branch names.

Rebase and Merge editor displays branch names in the headings.

Productivité .NET

  • Nous avons ajouté une commande Supprimer les références inutilisées qui vous permet de nettoyer les références de projet et les packages NuGet qui ne sont pas utiliser. Cette option est désactivée par défaut. Vous devez donc l’activer dans Outils>Options>Éditeur de texte>C#>Avancé et sélectionner Afficher la commande « Supprimer les références inutilisées » dans l’Explorateur de solutions (expérimental). Une fois l’option activée, la commande Supprimer les références inutilisées s’affiche dans le menu contextuel d’un nom de projet ou d’un nœud de dépendances dans l’Explorateur de solutions :

Remove Unused References command

La sélection de Supprimer les références inutilisées ouvre une boîte de dialogue dans laquelle vous pouvez afficher toutes les références qui vont être supprimées avec une option pour conserver celles que vous souhaitez conserver :

Remove Unused References dialog

  • Nous avons ajouté une nouvelle commande appelée Saut de ligne intelligent qui insère automatiquement un ensemble d’accolades et place l’accent circonflexe dans ces accolades lors de l’utilisation de Maj+Entrée comme caractère de validation. Le saut de ligne intelligent fonctionne pour toutes les déclarations de type qui nécessitent des accolades ainsi que pour les propriétés, les événements, les champs et les expressions de création d’objets. L’exemple ci-dessous montre un saut de ligne intelligent utilisé sur une classe et un champ. Si le champ n’a pas de point-virgule à la fin, la saisie de Maj+Entrée convertit le champ en propriété en ajoutant un ensemble d’accolades. Vous pouvez appuyer à nouveau sur Maj+Entrée pour annuler la validation, ce qui ajoute automatiquement un point-virgule à la fin du champ :

Smart Break Line

  • Il existe maintenant une refactorisation pour simplifier les expressions LINQ qui supprime l’appel inutile à l’énumérable pour la méthode .Where() pour améliorer les performances et la lisibilité. Placez votre curseur sur l’expression LINQ. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Simplifier l’expression LINQ.

Simplify LINQ Expression

  • Il existe maintenant une complétion IntelliSense pour les valeurs Enum lorsqu’un type est connu même si le nom Enum n’est pas entré.

IntelliSense completion for Enum values

  • Nous avons ajouté un nouveau paramètre de mode de complétion IntelliSense qui vous donne la possibilité de définir les options de complétion par défaut. Ce nouveau paramètre est disponible dans Outils>Options>Éditeur de texte>Avancé>Mode de complétion IntelliSense par défaut, où vous pouvez choisir parmi les options suivantes : Dernier utiliser qui conserve le dernier paramètre que vous avez utilisé avec Ctrl+Alt+Espace, Tab uniquement qui complète uniquement en appuyant sur Tab et Automatique qui est actuellement le comportement par défaut qui complète la ponctuation et les caractères spéciaux.

IntelliSense completion mode setting

  • Nous avons ajouté de nouvelles préférences de style de code pour les nouvelles lignes. Vous pouvez configurer ces préférences avec un fichier EditorConfig ou dans Outils>Options>Éditeur de texte>C#>Style de code>Préférences de nouvelle ligne (expérimental).

Code style options for new lines

Par exemple, vous pouvez définir votre préférence de style de code pour signaler un diagnostic et proposer un correctif de code pour supprimer des lignes vides supplémentaires :

Code fix remove extra blank lines

  • Il existe désormais une prise en charge de la fonction Rechercher toutes les références pour les générateurs de sources qui vous permet de trouver des références dans un document généré par la source.

  • Il existe maintenant une option de complétion qui insère automatiquement des arguments lors de l’écriture d’un appel de méthode. Cette fonctionnalité est désactivée par défaut. Vous devez donc l’activer dans Outils > Options > Éditeur de texte> C# > IntelliSense et sélectionner Appuyer deux fois sur Tab pour insérer des arguments (expérimental). Commencez à écrire un appel de méthode et appuyez deux fois sur Tab (Tab + Tab). Notez que l’appel de méthode inclut des arguments basés sur les valeurs par défaut de la méthode. Vous pouvez ensuite utiliser les informations de paramètre pour parcourir la liste des arguments que vous souhaitez insérer en appuyant sur les touches de direction haut et bas. Vous pouvez également commencer à taper un argument pour afficher la liste de saisie semi-automatique IntelliSense et taper le point-virgule qui validera l’argument et ajoutera un point-virgule à la fin de l’appel de méthode.

Method call argument completion

  • Nous avons créé une interface utilisateur pour EditorConfig. Ouvrez n’importe quel fichier C# ou Visual Basic EditorConfig à partir de votre solution. Notez que la nouvelle interface utilisateur ouvre l’option de configuration de style de code et de qualité du code pour C# et Visual Basic.

EditorConfig UI

  • Il existe maintenant une représentation visuelle pour naviguer et inspecter la chaîne d’héritage. Cette option est désactivée par défaut. Vous devez donc l’activer dans Outils > Options > Éditeur de texte > C# > Avancé et sélectionner Afficher la marge d’héritage. L’activation de la marge d’héritage ajoute de nouvelles icônes aux marges représentant les implémentations et remplacements de votre code. Cliquer sur l’icône de marge d’héritage affiche les options d’héritage que vous pouvez sélectionner pour y accéder.

Inheritance Margin Icons

  • Il existe désormais une complétion IntelliSense pour les casts, les indexeurs et les opérateurs.

IntelliSense completion for casts, indexers, and operators

  • Il existe désormais une prise en charge du débogueur pour les générateurs sources. Vous devez d’abord installer le composant SDK .NET Compiler Platform à partir de Visual Studio Installer. Vous devez ensuite ajouter la propriété <IsRoslynComponent>true</IsRoslynComponent> à votre fichier projet. Ensuite, activez l’option de débogueur « Composant Roslyn » dans la page Débogage des propriétés du projet et sélectionnez le projet cible approprié. Ensuite, appuyez sur F5 dans le projet de générateur, ce qui démarre csc.exe/VBC.exe qui génère le projet cible, ce qui vous permet de déboguer le code du générateur.

Source Generator debugger

Source Generator debugger target project

Dans cette version, nous avons également ajouté les améliorations suivantes à l’expérience de débogage Modifier et Continuer (EnC) dans Visual Studio :

  • Il est désormais possible d’appliquer des modifications dans le code qui se trouvent dans une classe partielle.
  • Vous pouvez désormais appliquer des modifications dans un fichier généré par la source.
  • Il est désormais possible d’ajouter et/ou de modifier une directive using.
  • Améliorations de la fiabilité et réduction de la consommation de mémoire.

Les trois modifications sont disponibles partout où EnC est pris en charge aujourd’hui et fonctionnent avec les fichiers sources C# et Visual Basic.

Débogueur et diagnostics

  • Nous avons développé plusieurs analyseurs pour détecter les problèmes courants dans les images mémoire managées. Cette analyse peut désormais être effectuée sur des images mémoire principales Linux managées.

Automatically analyze memory dumps

Remerciement

Pour terminer, nous souhaitons adresser un grand merci aux personnes suivantes qui ont participé ce mois-ci à Productivité .NET (que vous connaissez aussi sous le nom de Roslyn) :

Éditeur de préversion Razor (ASP.NET Core)

Le nouvel éditeur de préversion Razor prend désormais en charge les fonctionnalités d’édition Razor suivantes :

  • La complétion IntelliSense filtre désormais les composants HTML, les éléments TagHelper et les a tributs C# :

Razor IntelliSense filters

  • Complétion IntelliSense pour les remplacements C#.
  • Prise en charge de la fonction Atteindre la définition pour les composants génériques.
  • Nouvelles options de configuration de style de code pour les tabulations et les espaces. Ces styles de code sont respectés lors de la saisie, de la mise en forme et de la création d’un fichier Razor. Vous pouvez configurer des tabulations et des espaces dans Outils > Options > Éditeur de texte > Razor (ASP.NET Core) > Tabulations.
  • L’éditeur de texte Razor dans les options d’outils a été renommé de Services de langage Razor ASP.NET Core en Razor (ASP.NET Core).

Pour activer l’éditeur de préversion Razor, accédez à Outils > Options > Environnement > Fonctionnalités d’évaluation, sélectionnez Activer l’éditeur Razor expérimental, puis redémarrez Visual Studio.

Améliorations apportées à l’accessibilité de l’expérience de test

  • Console.Writeline s’affiche maintenant dans l’Explorateur de tests ! La sortie longue s’affiche sous la forme d’une section réductible dans le volet résumé des détails du test. La sortie d’une certaine longueur affiche les premières lignes et est tronquée avec une option permettant d’ouvrir le journal de test dans une fenêtre distincte. Le stacktrace tronque s’il y a plus de 20 images et affiche uniquement les 10 premières et dernières images. Une partie importante de la conception de la troncation a également été axée sur la réduction des blocages de VS lorsque les exécutions de test ont une sortie volumineuse. Les tests qui ont une sortie volumineuse ne bloquent plus le thread d’interface utilisateur.

Test output includes Console.Writeline

  • La sortie de test peut désormais conserver les étiquettes afin que les liens hypertexte et les liens stacktrace soient navigables même à partir des fichiers journaux. Ces liens sont désormais compatibles avec le clavier.

Test output preserves hyperlinks and stacktraces

Test logs also preserve hyperlinks and stacktraces

  • Les fichiers journaux sont créés pour un résultat de test unique lorsque la sortie est supérieure à 300 caractères ou s’il y a plus de 10 fichiers attachés au résultat du test. Les fichiers journaux peuvent également s’ouvrir en prévisualisation pour faciliter la gestion de vos onglets. Les fichiers journaux et l’Explorateur de tests prennent en charge Ctrl + Flèche haut/Flèche bas pour déplacer le curseur et Maj + Ctrl + Flèche haut/Flèche pour la sélection.

Test logs are easier to select with keyboard shortcuts

  • L’éditeur de fichiers journaux utilise désormais l’interface IVsTextView, ce qui signifie qu’il sera désormais en mesure d’ouvrir des fichiers texte très volumineux. Les utilisateurs n’auront donc plus besoin de Copy All tronquer les journaux et de les ouvrir dans un éditeur distinct tel que le Bloc-notes. Pour MSTest, nous incluons désormais un seul fichier journal qui agrège toutes les sorties au lieu d’avoir uniquement des fichiers journaux individuels pour chaque ligne de données.

Outils de test

  • Vous pouvez désormais obtenir une couverture du code multiplateforme sur la ligne de commande sur Ubuntu et Alpine avec l’interface CLI dotnet. Pour les utilisateurs intéressés par l’obtention de la couverture du code sur les machines ciblant ces plateformes, vous pouvez désormais ajouter les mêmes commandes de collecte de couverture de code que celles que vous utiliseriez normalement sur Windows. Consultez la documentation supplémentaire pour le test dotnet.
  • Il existe maintenant un bouton Développer tout en regard du bouton Réduire tout dans l’Explorateur de tests. Cette commande était disponible par le biais de raccourcis clavier (Ctrl + A, Ctrl + flèche droite), mais les commentaires ont montré que l’ajout d’un bouton valait la peine. Comme toujours, merci de nous informer de ce que vous pensez via https://developercommunity.visualstudio.com/.
  • Il existe également de légères modifications sur la façon dont l’Explorateur de tests affiche « l’obsolescence ». « L’obsolescence » désigne les résultats de test grisés ou « décolorés » qui indiquent que le résultat n’est pas issu de la dernière série de tests. Si un résultat n’est pas une partie de la série de test la plus récente, il apparaît comme obsolète. Auparavant, de nouvelles découvertes de tests (ou même d’anciens résultats de test redécouverts) étaient également affichées avec des icônes pleines. Cela a provoqué une certaine confusion sur la raison pour laquelle certains tests « Non exécutés » étaient décolorés et pourquoi d’autres ne l’étaient pas. Ce changement réduira la complexité de l’obsolescence.
  • Avec la fonctionnalité des résultats de test persistants (ajoutée dans la version 16.2), vous pouvez voir les résultats des tests à partir de la dernière série de tests, même si vous avez fermé et rouvert Visual Studio. Cela permet aux utilisateurs de se rappeler où ils se sont arrêtés et de donner plus de contexte sans nécessiter une autre exécution de test. Nous avons également modifié le comportement des résultats persistants afin qu’ils apparaissent toujours obsolètes. Cela indique mieux qu’ils ne proviennent pas d’une série de tests exécutée pendant la session Visual Studio actuelle.

Persisted test results from last Visual Studio session appear faded

Outils web

La configuration dynamique permet l’actualisation automatique des ressources de configuration à l’aide d’un intergiciel. App Configuration en tant que service connecté peut désormais intégrer automatiquement la configuration dynamique à votre application. Pour utiliser ce service connecté, cliquez sur Services connectés, puis ajoutez Azure App Configuration en tant que dépendance de service.

« Arborescence des dépendances » du projet de création de packages d’applications Windows

  • Suite au travail de l’année dernière pour activer les références de package NuGet dans le projet de création de packages d’applications Windows (WAP), nous avons activé une nouvelle interface utilisateur dans l’expérience de l’Explorateur de solutions WAP. L’ancienne expérience n’affichait pas ces références de package ou ne vous permettait pas d’ajouter des packages NuGet via l’interface utilisateur.

Windows Application Packaging Project Old User Interface.

  • Dans la nouvelle expérience, avec l’aide de CPS et du système de projet .NET, nous avons activé une « arborescence des dépendances » qui continue d’afficher les références de projet via la sous-arborescence « Applications », mais elle inclut également une sous-arborescence « Packages » qui vous permet également de gérer les packages NuGet.

Windows Application Packaging Project New User Interface.

Améliorations apportées aux outils XAML (WPF et Xamarin.Forms)

Xamarin.Forms

Dans cette version, nous avons apporté deux petites améliorations à XAML IntelliSense et au rechargement à chaud XAML pour les clients Xamarin.Forms. Le rechargement à chaud « modification uniquement » ne signale plus les fausses erreurs pour :

  • Setters dans VisualStateManager référençant les propriétés sans spécifier de type, par exemple <Setter Property="BackgroundColor" Value="Red">.
  • Dictionnaires de ressources fusionnés non encapsulé dans l’élément <ResourceDictionary.MergedDictionaries>

Exemple :

    <Application>
    <Application.Resources>
        <ResourceDictionary Source='Colors.xaml'/>
        <Style TargetType='Label'> ... <Style>
    </Application.Resources>
    </Application>

Exemples de données XAML

Dans cette version, nous avons amélioré davantage la fonctionnalité de données au moment de la conception du Concepteur XAML en ajoutant un nouveau moyen d’ajouter des exemples de données génériques à vos ItemsControls. Cette fonctionnalité fonctionne uniquement pour ListBox, ListView et DataGrid dans WPF.

  • Vous pouvez activer des exemples de données en définissant d:ItemSource='{d:SampleData}' sur votre ListBox, ListView ou DataGrid
  • Cela remplit votre contrôle dans le concepteur uniquement avec un ensemble de 5 éléments qui correspondent à vos chemins de liaison et DataTemplates
  • Vous pouvez modifier le nombre d’éléments générés à l’aide de la propriété ItemCount, par exemple : d:ItemSource='{d:SampleData ItemCount=3}'

ListBox showing Sample Data.

Actions rapides du concepteur XAML

  • Une nouvelle ampoule près du coin d’un contrôle sélectionné dans le Concepteur XAML peut être utilisée pour un accès rapide aux propriétés couramment modifiées pour ce contrôle.

  • Les contrôles pris en charge sont les suivants :

    • UWP : Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock, TextBox
    • WPF : Border, Button, Canvas, CheckBox, ComboBox, Grid, Image, Label, ListBox, ListView, StackPanel, TextBlock, TextBox
  • Cette fonctionnalité est disponible pour UWP, WPF .NET Core et WPF .NET Framework (avec la fonctionnalité « Nouveau concepteur XAML WPF pour .NET Framework » activée dans la boîte de dialogue des options).

  • Les actions rapides du concepteur XAML ont également un modèle d’extensibilité. Pour plus d’informations sur la création de vos propres actions, consultez GitHub de l’extensibilité du concepteur XAML

XAML Designer Quick Actions on a Button

Outils MVVM pour XAML

Dans cette version, nous avons introduit une ampoule dans l’éditeur XAML pour créer un modèle d’affichage. Cette ampoule est affichée sur l’élément racine du document XAML lorsque nous détectons qu’une infrastructure MVVM est utilisée dans le projet. La boîte de dialogue permet de personnaliser l’espace de noms du modèle d’affichage généré, le dossier et le modèle d’affichage de base hérité.

Create view-model lightbulb experience

L’ampoule définit également le modèle d’affichage généré comme x:DataType(Xamarin.Forms) ou d:DataContext(toutes les autres plateformes) pour le document XAML, ce qui permet à l’utilisateur d’exploiter davantage les ampoules de l’éditeur XAML pour générer des propriétés et des commandes liées dans les modèles d’affichage.

Outils Service Fabric

Cette fonctionnalité introduit le fichier StartupServices.xml dans une conception d’application Service Fabric. Ce fichier héberge la section DefaultServices d’ApplicationManifest.xml. Avec cette implémentation, les paramètres relatifs à la définition de DefaultServices et de Service sont déplacés du fichier ApplicationManifest.xml existant vers ce nouveau fichier appelé StartupServices.xml. Ce fichier est utilisé dans chaque fonctionnalité (Compiler/Régénérer/F5/Ctrl+F5/Publier) dans Visual Studio.

Principaux problèmes résolus dans cette version

  • Correction d’un problème où les développeurs C# appelant la commande Edit.SmartBreakline supprimaient tout le contenu dans l’accesseur de propriété.
  • Correction d’un problème où les développeurs qui mettaient à jour un paramètre de style de code voyaient la modification s’appliquer à toutes les instances de Visual Studio au lieu de l’appliquer uniquement au dossier souhaité.
  • L’icône « Appliquer les modifications de code » s’affiche chaque fois qu’un projet natif ou fusionné a été ouvert. Elle ne sera activée qu’une fois qu’un développeur démarre le débogage.
  • Correction du changement cassant dans AudioUnitPropertyIDType
  • Correction d’un problème où les développeurs utilisant l’infrastructure de test unitaire UWP ne pouvaient pas exécuter de tests sur des appareils distants.

À partir de Developer Community

Developer Community contient une liste complète de tous les éléments d’expédition dans cette version.

Voici quelques-uns des principaux problèmes votés publiés dans la version 16.10 :


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 Feedback Icon 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