2019Logo Notes de publication de Visual Studio 2019 version 16.8



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.8

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.8

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 :


Consultez la liste complète de tous les éléments Developer Community pris en compte dans Visual Studio 2019 version 16.8

Icône Notes de publication Visual Studio 2019 version 16.8.7

Publication : 09 mars 2021

Problèmes corrigés dans cette mise en production de Visual Studio 2019 version 16.8.7

Avis de sécurité Microsoft

CVE-2021-21300 Vulnérabilité d’exécution de code à distance dans Git pour Visual Studio

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

CVE-2021-26701 Vulnérabilité d’exécution de code à distance dans .NET Core

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.8.6

Publication : 22 février 2021

Problèmes corrigés dans cette mise en production de Visual Studio 2019 version 16.8.6


Icône Notes de publication Visual Studio 2019 version 16.8.5

Publication : 09 février 2021

Avis de sécurité Microsoft

CVE-2021-1639 Vulnérabilité d’exécution de code à distance dans le service de langage TypeScript

Une vulnérabilité d’exécution de code à distance existe quand Visual Studio charge un dépôt 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 en cas de création d’une requête web HTTPS pendant la génération d’une chaîne de certificat X509.

CVE-2021-24112 Vulnérabilité d’exécution de code à distance dans .NET 5 et .NET Core

Une vulnérabilité d’exécution de code à distance existe pendant la suppression de métafichiers quand une interface graphique a toujours une référence sur ces fichiers. Cette vulnérabilité existe uniquement sur les systèmes s’exécutant sur MacOS ou Linux.

Problèmes corrigés dans cette mise en production de Visual Studio 2019 version 16.8.5

  • Correction d’un problème où x86 Microsoft.VCLibs Appx installé sous extensionsSDKs a été mis à jour avec une signature correcte.
  • Correction d’une fuite de mémoire lors de l’utilisation des fonctionnalités DesignTime C++.
  • Correction d’un problème où une exception se produisait si un mot de passe n’était pas mémorisé lors de l’importation d’une base de données existante dans un projet SSDT.
  • Correction d’un problème où le bouton de publication est désactivé la première fois que les clients publient des projets .NET Core dans un dossier ou d’autres cibles d’hébergement.
  • Correction d’un blocage qui se produisait occasionnellement lorsque les développeurs ouvraient la page d’affichage des profils de publication.
  • Ajout de la prise en charge de Xcode 12.4.

Éléments de Developer Community


Icône Notes de publication Visual Studio 2019 version 16.8.4

Publication : 12 janvier 2021

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

Une vulnérabilité avec élévation de privilège existe quand le service Collecteur standard du hub de diagnostic ne gère pas correctement les opérations de données.

CVE-2020-26870 Vulnérabilité liée à l’exécution de code à distance de Visual Studio Installer

Une vulnérabilité liée à l’exécution de code à distance existe lorsque Visual Studio Installer tente d’afficher du code markdown malveillant.

CVE-2021-1723 Vulnérabilité de déni de service d’ASP.NET Core et Visual Studio

Une vulnérabilité de déni de service existe dans la façon dont Kestrel analyse les demandes HTTP/2.

Problèmes corrigés dans cette mise en production de Visual Studio 2019 version 16.8.4

  • Correction d’un problème où des composants IntelliCode C# spécifiques ne pouvaient pas être installés si IntelliCode avait été installé à partir du Visual Studio Marketplace dans les versions antérieures de Visual Studio
  • Les références de projet transitives sont maintenant respectées lorsqu’un projet PackageReference référence des projets packages.config avec des dépendances PackageReference.
  • Ajout de la prise en charge de Xcode 12.3.
  • Corrections de la prise en charge du simulateur x86_64 watchOS 7.0+
  • Nous avons corrigé les faux positifs (C33001 ~ C33005) pour l’utilisation de VARIANT retournés par une fonction.
  • Correction du plantage intermittent de VS dans le concepteur WinForms .NET Core lors de la fermeture du projet ou de la solution.
  • Correction du problème 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.
  • Résolution du problème selon lequel il était impossible d’enregistrer les modifications d’un fichier sqlproj en cliquant sur Mettre à jour dans Comparer les schémas SQL
  • Correction d’un bogue qui provoquait l’échec des builds avec des erreurs « Table/colonne introuvable ».
  • Correction de la case à cocher « commit après fusion » de Team Explorer –> Branches.
  • Correction d’une erreur qui fait que Visual Studio peut ne pas répondre pendant plusieurs secondes pendant la vérification des mises à jour.
  • L’outil DeploymentAppRecipe.exe prend désormais en charge l’exécution à partir de n’importe quel répertoire actif. Il retourne également une valeur de retour non nulle chaque fois que le déploiement échoue, et imprime les messages d’erreur dans le flux d’erreur standard.

À partir de Developer Community



Icône Notes de publication Visual Studio 2019 version 16.8.3

Publication : 8 décembre 2020

Avis de sécurité Microsoft

CVE-2020-17156 Vulnérabilité liée à l’exécution de code à distance de Visual Studio

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

Problèmes corrigés dans cette mise en production de Visual Studio 2019 version 16.8.3

  • Correction d’une erreur de compilateur interne lorsqu’un modèle de fonction imbriqué est défini en dehors de la classe parente.
  • Correction de l’erreur C2355 qui se produisait lors de l’utilisation de « this » dans l’initialiseur d’un membre de données non statique.
  • Correction de l’erreur de chargement de l’ensemble de règles pour l’ensemble de règles personnalisé à l’aide de l’option /analyze:ruleset avec /analyze:rulesetdirectory et/ou /analyze:projectdirectory.
  • Correction d’un incident intermittent dans Visual Studio lors de l’utilisation du concepteur WinForms .NET Core.
  • Insertion de .NET 5.0.1 dans Visual Studio 16.8.3
  • Correction d’un problème dans lequel certaines fenêtres de l’outil activé du contexte de l’interface utilisateur peuvent provoquer le blocage de Visual Studio.
  • Correction de l’envoi (push) à partir de la page Gérer les branches lorsqu’il n’existe aucune branche de suivi Git distante.
  • Ajout de la prise en charge de Xcode 12.2.

À partir de Developer Community



Icône Notes de publication Visual Studio 2019 version 16.8.2

Publication : 19 novembre 2020

Problèmes corrigés dans cette mise en production de Visual Studio 2019 version 16.8.2

  • Correction du bogue d’optimisation dans les boucles.
  • Correction de l’erreur interne du compilateur dans l’implémentation de l’élision de copie garantie (fonctionnalité C++17).
  • Correction de la régression des performances de build pour les grandes utilisations de types anonymes.
  • Résolution d’un problème où une barre dorée avec le message « L’argument spécifié était en dehors de la plage de valeurs valides » s’affichait lors de la modification du code C#.
  • Correction d’un problème susceptible de provoquer une exception MissingMethodException lors de la génération d’un projet avec des modèles T4.
  • Résout un problème où la recherche dans la boîte de dialogue Nouveau projet peut ne retourner aucun résultat.

À partir de Developer Community



Icône Notes de publication Visual Studio 2019 version 16.8.1

Publication : 12 novembre 2020

Problèmes corrigés dans cette mise en production de Visual Studio 2019 version 16.8.1

  • Correction d’un problème à forte incidence dans lequel « le package 'SourceExplorerPackage' ne se chargeait pas correctement ». L’avertissement s’affiche lors du clonage d’un référentiel dans Team Explorer. Lorsque les utilisateurs rencontraient ce problème, le produit cessait de répondre.

Icône Notes de publication Visual Studio 2019 version 16.8.0

Publication : 10 novembre 2020

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


F# :

  • F# 5 est désormais publié avec .NET 5
  • Améliorations et correctifs des performances pour les outils Visual Studio via les Outils F# version 11.0.0
  • Notes de publication complètes disponibles sur GitHub

C++ :

  • Les coroutines C++20 sont désormais prises en charge sous /std:c++latest et l’en-tête <Coroutine>.
  • IntelliSense prend désormais en charge les en-têtes <Concepts> et <Plages> C++20, ainsi que le renommage et la recherche des définitions de concept.
  • Notre STL prend désormais en charge la majorité des plages C++20.
  • Les fonctions membres spéciales conditionnellement triviales sont désormais prises en charge dans MSVC.
  • C11 et C17 sont maintenant pris en charge sous les commutateurs /std:c11 et /std:c17.
  • Parmi les autres améliorations apportées à STL, citons la prise en charge complète de std::atomic_ref, std::midpoint and std::lerp et std::execution::unseq,des optimisations pour std::reverse_copy, etc.
  • Version de CMake mise à jour livrée avec Visual Studio vers CMake 3.18.
  • Nos outils d’analyse du code prennent désormais en charge SARIF 2.1, le format standard pour les journaux d’analyse statique.
  • Si des outils de génération sont manquants dans un projet Linux, un avertissement est désormais généré dans la barre d’outils et une description claire des outil en question apparaît dans la liste d’erreurs.
  • Vous pouvez désormais déboguer les images mémoire Linux sur un système Linux distant ou WSL directement à partir de Visual Studio.
  • Pour la génération de commentaires Doxygen pour C++, nous avons ajouté des options de style de commentaire (/*! et //!).
  • Autres annonces sur vcpkg
  • Support du compilateur pour des expressions lambda dans des contextes non évalués
  • Performances des liens complets améliorées par la création d’un fichier PDB multi-threading. Plusieurs applications de grande taille et jeux AAA voient une liaison de 2 à 4 fois plus rapide.
  • Le débogueur Visual Studio prend désormais en charge char8_t.
  • Support des projets ARM64 à l’aide de clang-cl.
  • Support Intel AMX intrinsèque.
  • Ajout d’une nouvelle option de lien, legacy_stdio_float_rounding.obj, pour activer le comportement hérité d’affichage des valeurs à virgule flottante, qui a été modifié dans Dev16.2 pour arrondir correctement les nombres à virgule flottante pouvant être représentés de manière exacte. Pour plus d’informations, consultez printf, _printf_l, wprintf, _wprintf_l.

Débogueur :

  • Prise en charge du débogage d’image mémoire Linux .NET Core
  • Analyse automatique .NET et .NET Core
  • Analyse automatique du chemin chaud en mémoire .NET et .NET Core

Mises à jour de l’éditeur Razor Experimental :

  • Ampoules Blazor
  • Ampoules C#
  • Mise en forme Razor améliorée
  • Renommer les composants Razor dans la balise à partir des fichiers .razor
  • Accéder à la définition de l’espace de noms des balises de composants Blazor
  • Coloration de pointage C#
  • Coloration toolitip de la saisie C#
  • Atteindre la définition/Accéder à l’implémentation pour Razor, notamment les fichiers fermés
  • Trouver toutes les références dans des fichiers Razor fermés
  • Amélioration des performances et de la stabilité de la modification de code Razor pour les solutions et projets volumineux

Fakes avec des projets de style kit de développement logiciel (SDK) :

  • Lors de l’utilisation du nouveau support Fakes pour les projets de style kit de développement logiciel (SDK), certains utilisateurs ont rencontré l’erreur suivante lors de la génération de shims

Productivité Git :

  • En savoir plus sur l’utilisation de toutes les fonctionnalités Git dans notre nouvelle documentation en ligne
  • Ouvrez la fenêtre du référentiel Git à tout moment par le biais de la fenêtre Modifications Git, du menu Affichage et de la barre d’état
  • Récupération (fetch), tirage (pull) et envoi (push) à partir de plusieurs dépôts distants dans la fenêtre Modifications Git
  • Afficher les messages de réussite et d’erreur pour les commandes Git en haut de la fenêtre Référentiel Git
  • Créer une branche à partir d’un élément de travail Azure DevOps
  • Ouvrir un dépôt Git à partir d’une liste de vos dépôts locaux dans le menu Git
  • Le fournisseur du contrôle de code source par défaut est désormais Git au lieu de TFVC
  • Simple clic pour basculer entre les historiques de branche dans la fenêtre de référentiel Git
  • Afficher et sélectionner dans une liste de solutions dans Explorateur de solutions après l’ouverture d’un référentiel
  • Modification de l’affichage de l’historique et recherche de validations à l’aide d’une barre d’outils dans la fenêtre Dépôt Git
  • Extraction, tirage (pull) et envoi (push) à partir des sections de validations entrantes et sortantes dans le graphique d’historique d’une branche
  • Invite à créer une demande de tirage (pull request) après avoir envoyé une branche à votre
  • Affichage des noms des branches dans les commandes merge et rebase dans le menu contextuel de la liste des branches
  • Accès aux commandes Git via le menu contextuel de l’Explorateur de solutions et de l’éditeur
  • Observation de la progression du clonage via une nouvelle boîte de dialogue modale avec l’option permettant de déplacer le processus en arrière-plan

IntelliCode :

  • Recevoir des saisies semi-automatiques IntelliCode personnalisées dans la documentation Visual Studio
  • Gardez à jour vos saisies semi-automatiques IntelliCode avec votre codebase et votre partage dans le cadre de la documentation du flux de travail CI de votre équipe

Productivité .NET :

  • Les analyseurs Roslyn sont désormais inclus dans le kit de développement logiciel (SDK) .NET 5.0
  • Une refactorisation qui introduit la nouvelle syntaxe de critères spéciaux du modèle not C# 9 quand un opérateur de suppression est présent
  • Refactorisation de méthode incluse pour aider à remplacer les utilisations de la méthode statique, de l’instance et d’extension dans un corps d’instruction unique
  • Correctif de code pour convertir des instances de typeof en nameof dans C# et GetType pour NameOf dans Visual Basic
  • Support C# et Visual Basic pour les conseils de nom de paramètre inclus qui insère des ornements de littéraux, de littéraux associés et d’instanciations d’objets avant chaque argument dans les appels de fonctions
  • Refactorisation qui extrait les membres d’une classe sélectionnée vers une nouvelle classe de base en C# et Visual Basic
  • Le nettoyage du code possède de nouvelles options de configuration qui peuvent appliquer des préférences de mise en forme et d’en-tête de fichier définies dans votre fichier EditorConfig dans un fichier unique ou dans une solution complète
  • Correctif de code pour supprimer le mot clé in dans lequel l’argument ne doit pas être passé par référence
  • Refactorisation qui introduit les nouveaux combinateurs de modèles C# 9 et les suggestions de critères spéciaux, telles que la conversion de == pour utiliser is le cas échéant
  • Correctif de code pour rendre une classe abstraite lorsque vous essayez d’écrire une méthode abstraite dans une classe qui n’est pas abstraite
  • La saisie semi-automatique IntelliSense dans les littéraux de chaîne DateTime et TimeSpan s’affiche automatiquement lorsque le premier guillemet est tapé
  • Correctif de code pour supprimer les pragma suppressions et SuppressMessageAttributes inutiles
  • Rename et Find All References comprend les références aux symboles dans la chaîne cible de SuppressMessageAttributes global
  • ByVal est grisé pour indiquer qu’il n’est pas nécessaire et un correctif de code permet de supprimer le ByVal inutile dans Visual Basic
  • Support de la fenêtre interactive pour plusieurs runtimes, par exemple .NET Framework et .NET Core.
  • Une nouvelle API RegisterAdditionalFileAction ajoutée permet aux créateurs d’analyseurs de créer un analyseur pour des fichiers supplémentaires.

IDE Visual Studio 2019 :

  • Ajoutez votre compte GitHub à l’aide de l’expérience de gestion du compte
  • Dans cette version, l’expérience héritée de recherche dans les fichiers est dépréciée et tous les utilisateurs sont redirigés vers la nouvelle expérience. L’équipe de l’éditeur travaille avec des personnes qui laissent des commentaires dans la Communauté des développeurs et qui rencontrent des problèmes avec l’expérience moderne de recherche dans les fichiers.
  • Le fournisseur de publication ClickOnce est désormais disponible pour les applications de bureau Windows .NET Core 3.1 et .NET 5.0.

Renvoyer à la ligne dans le volet Détails du test de l’Explorateur de tests :

  • Maintenant, vous pouvez renvoyer le texte à la ligne dans le volet Détails du test de l’Explorateur de tests.

Outils XAML (WPF, UWP et Xamarin.Forms) :

  • Améliorations du diagnostic des échecs de liaison XAML
  • Déplacement des paramètres du Rechargement à chaud XAM dans « Débogage > Rechargement à chaud »
  • Remplissage de la boîte à outils à partir de packages NuGet non référencés

JavaScript/TypeScript :

  • Le débogueur JavaScript/TypeScript prend désormais en charge le débogage des travaux de service, des travaux web, des iFrames et de votre page JavaScript. Le tout, simultanément ! En outre, la nouvelle expérience de débogage permet de déboguer simultanément les applications de votre serveur de nœud back-end et le JavaScript côté client dans le navigateur. Cette fonctionnalité est encore expérimentale. Vous pouvez activer la nouvelle expérience de débogage dans le menu des options de débogage
  • Vous pouvez désormais déclencher des refontes partout où ils peuvent être disponibles à l’aide du raccourci d’action de code (ctrl + .). Vous n’avez même pas besoin de sélectionner un texte - TypeScript désormais suffisamment intelligent pour rechercher les meilleures refontes disponibles dans votre emplacement de curseur !
  • Vous pouvez maintenant définir précisément les packages TypeScript pour rechercher la saisie semi-automatique de l’importation. Cela peut entraîner des améliorations des performances dans certains projets avec un grand nombre de dépendances. Pour plus d’informations, veuillez référer le TypeScript 4.0 (notes de publication) [https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html]
  • Nous avons ajouté un message dans le volet de sortie indiquant les types que nous installons pour prendre en charge IntelliSense. Nous vous recommandons d’ajouter un fichier tsconfig à votre projet pour personnaliser les types utilisés.
  • Veuillez noter que nous incluons le compilateur TypeScript 4.0 et le service de langage

Avis de sécurité Microsoft

CVE-2020-17100 Vulnérabilité de falsification 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é.

Problèmes traités dans cette Mise en production

  • Correction d’un problème où la compilation dans Visual Studio 2019 16.7 avec le code double long 80 bits du compilateur Intel C++ génère des erreurs du compilateur, empêchant ainsi les projets de se générer.
  • Correction d’un problème qui entraînait le non-démarrage de Live Unit Testing dans certains scénarios.
  • .NET 5.0.RC2 ajouté à Visual Studio 2019 v16.8 Preview 4
  • Correction d’un bogue dans lequel une opération Git occasionnelle commence et ne se termine jamais.
  • Ajout de fonctionnalités à la création et à la connexion de Visual Studio Codespaces.
  • Correction d’un bogue provoquant le plantage ou l’arrêt de Visual Studio 2019 lorsque vous fermez les solutions ASP.NET Core ou que vous en sortez.
  • Correction d’un problème où le chargement du système de projets C++ échouait après la désinstallation et la réinstallation de Visual Studio 2019.

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

C++

  • Les coroutines C++20 sont désormais prises en charge sous /std:c++latest et l’en-tête <Coroutine>. La prise en charge de notre comportement hérité est disponible sous <experimental/coroutine> et le commutateur /await.
  • IntelliSense prend désormais en charge les en-têtes <Concepts> et <Plages> C++20, ainsi que le renommage et la recherche des définitions de concept. Il existe un problème connu qui devrait être résolu dans Preview 4.
  • Notre STL prend désormais en charge la majorité des plages C++20. Vous pouvez suivre notre progression dans le problème GitHub relatif aux plages.
  • Les fonctions membres spéciales conditionnellement triviales sont désormais prises en charge dans MSVC.
  • C11 et C17 sont maintenant pris en charge sous les commutateurs /std:c11 et /std:c17.
  • Parmi les autres améliorations apportées à STL, citons la prise en charge complète de std::atomic_ref, std::midpoint and std::lerp et std::execution::unseq,des optimisations pour std::reverse_copy, etc. Vous trouverez toutes les mises à jour dans notre journal des modifications.
  • Nous avons mis à niveau la version de CMake livrée avec Visual Studio vers CMake 3.18.
  • Nos outils d’analyse du code prennent désormais en charge SARIF 2.1, le format standard pour les journaux d’analyse statique. Pour en savoir plus sur le format SARIF, consultez la spécification officielle.
  • Si des outils de génération sont manquants dans un projet Linux, un avertissement est désormais généré dans la barre d’outils et une description claire des outil en question apparaît dans la liste d’erreurs.
  • Vous pouvez désormais déboguer les images mémoire Linux sur un système Linux distant ou WSL directement à partir de Visual Studio.
  • Pour la génération de commentaires Doxygen pour C++, nous avons ajouté des options de style de commentaire (/*! et //!).
  • Autres annonces sur vcpkg
  • Nous avons ajouté la prise en charge du compilateur pour les lambdas dans des contextes non évalués ce qui vous permet de les utiliser dans les spécificateurs decltype.
  • Le linter et les corrections pendant la frappe sont désormais disponibles dans Visual Studio. Pour les configurer, accédez à Outils -> Options- > Éditeur de texte ->C/C++ -> CodeStyle -> Linter + corrections.
Linter pendant la frappe affichant un avertissement lors de l’utilisation de l’opérateur au niveau du bit & au lieu de l’opérateur logique && sur des booléens
Linter pendant la frappe

Débogueur

Prise en charge du débogage d’image mémoire Linux .NET Core

Le débogage des images mémoire Linux managées sur Windows était jusqu’à présent difficile à réaliser, car vous deviez généralement configurer un autre environnement Linux qui reflétait exactement la production, puis installer un ensemble d’outils pour l’analyse. Heureusement, dans Visual Studio 2019 16.8 Preview 3, vous pouvez simplement glisser-déposer une image mémoire Linux managée directement dans votre IDE et démarrer immédiatement le débogage.

Analyse automatique .NET

La programmation asynchrone (async) existe depuis plusieurs années sur la plateforme .NET, mais elle a toujours été difficile à mettre en œuvre. C’est pourquoi nous introduisons des analyseurs d’image mémoire managée qui permet d’identifier les scénarios et anti-modèles suivants :

  • Sync-over-Async
  • Épuisement des pools de threads

Analyse automatique du chemin chaud en mémoire .NET et .NET Core

Permet aux clients de consulter intuitivement les types d’objets dominants dans leur segment de mémoire à l’aide d’annotations Flamme dans la fenêtre Outil mémoire de diagnostics.

Fakes avec des projets de style kit de développement logiciel (SDK) génèrent des problèmes Shim

Lors de l’utilisation de la nouvelle prise en charge Fakes pour les projets de style SDK, certains utilisateurs ont rencontré l’erreur suivante lors de la génération de shims.

Cannot generate shim for System.DateTime: type is not supported because of internal limitations

Un correctif pour ce problème est publié dans 16.8 Preview 3. Si vous utilisez une version 16,7.*, vous pouvez utiliser la solution de contournement suivante :

  1. Ajoutez <FakesUseV2Generation>False</FakesUseV2Generation> à un PropertyGroup dans votre fichier csproj.
  2. Ajoutez <Fakes Include="Fakes\*.fakes" /> à un ItemGroup dans votre fichier csproj.
  3. Ajoutez une référence aux assemblys Fakes générés dans ProjectDir/FakesAssemblies.

Pour d’autres mises à jour, vous pouvez également suivre les commentaires de la communauté des développeurs.

Mises à jour de l’éditeur Razor Experimental

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

  • Ampoules Blazor :
    • Extraire vers le code-behind* :
    • Créer un composant à partir d’une balise*
    • Ajouter la directive @using pour le composant
    • Qualifier entièrement le nom de la balise de composant
  • Ampoules C#
    • Ajouter la directive @using
    • Qualifier entièrement le nom de type
  • Mise en forme Razor améliorée
  • Renommer les composants Razor dans la balise à partir des fichiers .razor
  • Définition des noms des composants de Blazor
  • Coloration de pointage C#
  • Coloration toolitip de la saisie C#
  • Trouver toutes les références dans des fichiers Razor fermés
  • Amélioration des performances et de la stabilité de la modification de code Razor pour les solutions et projets volumineux

* Fonctionne uniquement dans des scénarios Razor locaux ; pas encore pris en charge dans Visual Studio Codespaces ou Live Share.

Pour activer l’éditeur Razor Experimental, accédez à Outils>Options>Environnement>en préversion, sélectionnez Activer l’éditeur Razor Experimental, puis redémarrez Visual Studio.

IDE Visual Studio 2019

  • Ajoutez votre compte GitHub dans l’environnement familier de gestion des comptes Visual Studio. La gestion de versions, le terminal intégré et d’autres fonctionnalités pourront ensuite utiliser les informations d’identification de votre compte pour répondre aux besoins en matière d’authentification de GitHub.
Indicateurs de nom de paramètre inline avec GitHub
Ajout de comptes GitHub dans Visual Studio
  • Le fournisseur de publication ClickOnce est désormais disponible pour les applications de bureau Windows .NET Core 3.1 et .NET 5.0. Pour commencer, cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions et sélectionnez Publier, ou sélectionnez le menu Générer > Publier < nom_application>. ClickOnce se trouve sous la catégorie Dossier.
Image d’indicateurs de nom de paramètre inline avec GitHub
Fournisseur de publication ClickOnce dans Visual Studio

Productivité Git

  • Créer une branche à partir d’un élément de travail Azure DevOps
Créer une branche à partir d’un élément de travail Azure DevOps
Créer une branche à partir d’un élément de travail
  • Ouvrir un dépôt Git à partir d’une liste de vos dépôts locaux dans le menu Git
Liste des référentiels locaux
Liste des dépôts locaux dans le menu Git
  • Le fournisseur de contrôle de code source par défaut est désormais Git (et non plus TFVC). Pour changer de fournisseur, accédez à Outils > Options > Contrôle de code source.

  • Simple clic pour basculer entre les historiques de branche dans la fenêtre de référentiel Git

  • Afficher et sélectionner parmi une liste de solutions dans votre référentiel dans l’Explorateur de solutions après l’ouverture d’un référentiel

La fonctionnalité d’aperçu bascule pour afficher la liste des vues lors de l’ouverture d’un référentiel
La fonctionnalité d’aperçu bascule pour afficher la liste des vues lors de l’ouverture d’un référentiel
Liste des affichages dans l’Explorateur de solutions
Liste des affichages dans l’Explorateur de solutions

Productivité .NET

  • Les analyseurs .NET Compiler Platform (Roslyn) inspectent la sécurité, les performances, la conception et les problèmes de votre code C# ou Visual Basic. À compter de .NET 5.0, ces analyseurs sont inclus dans le kit de développement logiciel (SDK) .NET. Les analyseurs sont activés par défaut pour les projets ciblant .NET 5.0 ou version ultérieure. Vous pouvez activer l’analyse du code sur les projets ciblant des versions antérieures de .NET en affectant à la propriété EnableNETAnalyzers la valeur true. Vous pouvez désactiver l’analyse du code pour votre projet en affectant à EnableNETAnalyzers la valeur false. Vous pouvez également utiliser la fenêtre Propriétés du projet pour activer/désactiver les analyseurs .NET. Pour accéder à la fenêtre Propriétés du projet, cliquez avec le bouton droit sur un projet dans l’Explorateur de solutions, puis sélectionnez Propriétés. Sélectionnez ensuite l’onglet Analyse du code sous lequel vous pouvez cocher ou décocher la case Activer les analyseurs .NET.
Fenêtre Propriétés du projet pour activer les analyseurs .NET
Fenêtre Propriétés du projet pour activer les analyseurs .NET
  • Une refactorisation introduit désormais la nouvelle syntaxe de critères spéciaux du modèle not C# 9 quand un opérateur de suppression est présent. Placez le curseur sur l’opérateur de suppression. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Utiliser les critères spéciaux.
Refactorisation introduisant la nouvelle syntaxe de critères spéciaux du modèle not C# 9
Refactorisation introduisant la nouvelle syntaxe de critères spéciaux du modèle not C# 9
  • Une refactorisation de méthode inline vous aide désormais à remplacer les utilisations d’une méthode statique, d’instance et d’extension dans un corps d’instruction unique avec une option permettant de supprimer la déclaration de la méthode d’origine. Placez votre curseur sur l’utilisation de la méthode. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Ensuite, sélectionnez l'une des options suivantes :

Sélectionnez <QualifiedMethodName> inline pour supprimer la déclaration de la méthode inline :

Refactorisation de la méthode inline pour supprimer la déclaration
Refactorisation de la méthode inline pour supprimer la déclaration

Sélectionnez Inline et conserver <QualifiedMethodName> pour conserver la déclaration de la méthode d’origine :

Refactorisation de la méthode inline pour conserver la déclaration
Refactorisation de la méthode inline pour conserver la déclaration
  • La création d’un fichier C# ou Visual Basic à partir d’un modèle respecte les paramètres de style de code EditorConfig. Les styles de code suivants sont automatiquement appliqués lors de la création de fichiers : en-têtes de fichier, tri des directives using et placement des directives using à l’intérieur ou à l’extérieur des espaces de noms.

  • Il existe désormais une prise en charge C# et Visual Basic pour les indicateurs de nom de paramètre Inline qui insèrent des ornements pour les littéraux, les littéraux castés et les instanciations d’objets avant chaque argument dans les appels de fonction. Vous devez d’abord activer cette option dans Outils>Options>Éditeur de texte>C# ou De base>Avancéet sélectionnez Afficher les indications de nom des paramètres Inline (expérimental). Les indicateurs de nom de paramètre Inline s’affichent alors dans le fichier C# ou Visual Basic.

Indicateurs de nom de paramètre inline
Indicateurs de nom de paramètre Inline
  • Vous pouvez maintenant extraire les membres d’une classe sélectionnée vers une nouvelle classe de base avec la nouvelle refactorisation Extraire la classe de base. Placez le curseur sur le nom de la classe ou sur un membre mis en surbrillance. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Tirer le ou les membres jusqu'à la nouvelle classe de base. La boîte de dialogue Extraire la classe de base s’ouvre, dans laquelle vous pouvez spécifier le nom de la classe de base et l’emplacement où elle doit être placée. Vous pouvez sélectionner les membres que vous souhaitez transférer vers la nouvelle classe de base et choisir de rendre les membres abstraits en activant la case à cocher dans la colonne Créer une colonne abstraite.
Extraire une classe de base
Extraire une classe de base

Une fois que vous avez sélectionné OK vous verrez la nouvelle classe de base ajoutée avec ses membres.

Pour C#, sélectionnez Convertir typeof vers nameof :

Convertir typeof en nameof
Convertir typeof en nameof

Pour Visual Basic, sélectionnez l’onglet ConvertirGetType vers NameOf.

Convertir GetType en NameOf
Convertir GetType en NameOf
  • Le nettoyage de code possède de nouvelles options de configuration qui peuvent appliquer des préférences de mise en forme et d’en-tête de fichier définies dans votre fichier EditorConfig dans un fichier unique ou dans une solution complète.
Mise en forme et prise en charge des en-têtes de fichier dans le nettoyage du code
Mise en forme et prise en charge des en-têtes de fichier dans le nettoyage du code
  • Il existe désormais un correctif de code pour supprimer le mot clé in dans lequel l’argument ne doit pas être passé par référence. Placez votre curseur sur l’erreur. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Supprimer le mot clé 'in'.
Correctif pour Supprimer le mot clé 'in'
Correctif de code Supprimer le mot clé `in`
  • Il existe maintenant une refactorisation qui introduit les nouveaux combinateurs de modèles C#9. Avec les suggestions de critères spéciaux, telles que la conversion de == pour utiliser is le cas échéant, ce correctif de code suggère également les combinateurs de modèles and, or et not lors de la mise en correspondance de plusieurs modèles et mises en négatif différents. Placez votre curseur à l’intérieur de l’instruction. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Utiliser les critères spéciaux.
Introduire les combinateurs de modèles C#9
Introduire les combinateurs de modèles C#9
  • Il existe désormais un correctif de code pour rendre une classe abstraite lorsque vous essayez d’écrire une méthode abstraite dans une classe qui n’est pas abstraite. Placez votre curseur sur l’erreur de méthode. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Rendre la classe 'abstract'.
Rendre la classe abstraite
Rendre la classe abstraite
  • Dans 16.7 Préversion 1, nous avons ajouté la saisie semi-automatique IntelliSense dans les littéraux de chaîne DateTime et TimeSpan. Dans cette version, cette liste de saisie semi-automatique s’affiche automatiquement lorsque le premier guillemet est tapé. Dans le passé, il était nécessaire de taper (Ctrl+espace) pour afficher cette liste de saisie semi-automatique. Placez votre curseur à l’intérieur du littéral de chaîne DateTime ou TimeSpan, puis tapez le premier guillemet double. 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 les littéraux de chaîne DateTime et TimeSpan
Saisie semi-automatique IntelliSense dans les littéraux de chaîne DateTime et TimeSpan
Cette amélioration fonctionne également pour les chaînes interpolées lorsque vous tapez un signe deux-points
Cette amélioration fonctionne également pour les chaînes interpolées lorsque vous tapez un signe deux-points
  • Il existe désormais un correctif de code pour supprimer les suppressions de pragmas et les SuppressMessageAttributes inutiles. Placez votre curseur sur le pragma warning ou le SuppressMessageAttribute. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez Supprimer la suppression inutile.
Supprimer les pragmas inutiles
Supprimer les pragmas inutiles
Supprimer les SuppressMessageAttributes inutiles
Supprimer les SuppressMessageAttributes inutiles
  • Renommer et Rechercher toutes les références comprennent maintenant les références aux symboles dans la chaîne cible des suppressions de SuppressMessageAttribute globales.
Renommer SuppressMessageAttribute
Renommer SuppressMessageAttribute
Rechercher toutes les références pour SuppressMessageAttribute
Rechercher toutes les références pour SuppressMessageAttribute
  • Visual Basic proposait plusieurs façons de passer des paramètres, ByVal et ByRef, et ByVal a été facultatif pendant longtemps. ByVal est maintenant grisé pour indiquer qu’il n’est pas nécessaire et un correctif de code permet de supprimer le mot clé ByVal inutile. Placez votre curseur sur le mot clé ByVal. Appuyez sur (Ctrl+.+.) pour déclencher le menu Actions rapides et refactorisations. Sélectionnez ‘ByVal’ keyword is unnecessary and can be removed (Le mot clé 'ByVal' n’est pas nécessaire et peut être supprimé).
Refactorisation de suppression de ByVal Visual Basic
Refactorisation de suppression de ByVal Visual Basic
  • Une fenêtre interactive est maintenant prise en charge pour plusieurs runtimes, par exemple .NET Framework et .NET Core.
Prise en charge de fenêtre interactive dans .NET Core
Prise en charge de fenêtre interactive dans .NET Core
  • Une nouvelle API RegisterAdditionalFileAction permet aux créateurs d’analyseurs de créer un analyseur pour des fichiers supplémentaires.

Renvoyer à la ligne dans le volet Détails du test de l’Explorateur de tests

Cette fonctionnalité très demandée permet à l’utilisateur de sélectionner le renvoi du texte à la ligne ou de conserver l’alignement du texte par défaut. Lorsque l’alignement du texte n’est pas nécessaire, le renvoi à la ligne peut vous permettre de voir beaucoup plus facilement les commentaires d’une série de tests et vous évite d’utiliser une barre de défilement horizontale. Vous pouvez l’activer dans le menu des paramètres de l’Explorateur de tests ou dans le menu contextuel du volet Résumé.

Retour automatique à la ligne des détails du test à partir du menu Paramètres de test
Menu des paramètres de test
Renvoi à la ligne du texte dans le menu contextuel
Renvoi à la ligne du texte dans le menu contextuel

Outils XAML (WPF, UWP et Xamarin.Forms)

Améliorations du diagnostic des échecs de liaison XAML

Les développeurs qui travaillent sur des projets WPF, UWP, WinUI et Xamarin.Forms doivent souvent détecter et résoudre les défaillances de liaison de données XAML dans leurs applications. Pour améliorer les outils de diagnostic dans ce scénario, nous avons ajouté deux nouvelles expériences à Visual Studio 2019 version 16.8 ou ultérieure :

  • Icône d’indicateur des défaillances de liaison XAML : une nouvelle icône d’indicateur des défaillances de liaison XAML est maintenant présente dans la barre d’outils de l’application pour les projets WPF et UWP et dans l’arborescence d’éléments visuels en direct pour tous les projets XAML, y compris Xamarin.Forms. Cette icône affiche un indicateur rouge si au moins une défaillance de liaison est détectée. Cliquez sur l’icône vous permet également d’accéder à la nouvelle fenêtre des défaillances de liaison XAML.
Icône des défaillances de liaison (barre d’outils dans l’application)
Icône des défaillances de liaison (barre d’outils dans l’application)
  • Fenêtre des défaillances de liaison XAML : la nouvelle fenêtre défaillances de liaison XAML est désormais disponible pour les projets WPF, UWP, WinUI et Xamarin.Forms. Cette nouvelle expérience dédiée fournit une interface utilisateur riche sur les informations de défaillances de liaison qui étaient auparavant disponibles uniquement dans le Fenêtre Sortie. Les améliorations incluent la possibilité de voir les défaillances sous la forme d’un ensemble de colonnes pouvant être triées, personnalisées et pouvant faire l’objet d’une recherche complète. Nous avons également regroupé des erreurs similaires qui limitent le bruit qui peut se produire lors d’une certaine combinaison de défaillances de modèles de liaison de données, tout en rendant les informations d’erreur brutes d’origine disponibles et faciles à copier via une option de menu de clic droit. (remarque : requiert Xamarin version 4.5.0.266-pre3 ou une version ultérieure)
  • Accéder à la source pour les défaillances de liaison : En partenariat avec l’équipe WPF, nous avons activé la capacité à naviguer jusqu’à la source des défaillances de liaison pour les clients qui ciblent WPF sur .NET 5 (RC2 ou version ultérieure).
Fenêtre des défaillances de liaison XAML et icône LVT
Fenêtre des défaillances de liaison XAML et icône LVT

Recharge à chaud XAML

  • Le rechargement à chaud XAML « modifications uniquement » Xamarin.Forms prend désormais en charge l’UWP : dans cette version, nous commençons à déployer la prise en charge d’une fonctionnalité hautement demandée qui active le nouveau support du Rechargement à chaud XAML modifications uniquement dans des projets Xamarin.Forms lors du ciblage UWP. Notez que cette fonctionnalité est toujours en cours de développement et que tandis que la modification XAML déclenche désormais des mises à jour de l’application en cours d’exécution, d’autres fonctionnalités telles que la barre d’outils dans l’application (sélection d’éléments, etc.) ne sont pas encore entièrement implémentées mais peuvent être présentes dans une future mise en production.
  • Déplacement des paramètres de rechargement à chaud XAM dans « Débogage > Rechargement à chaud » : Dans cette version, nous avons consolidé les paramètres de rechargement à chaud XAML dans WPF, UWP et Xamarin.Forms dans un écran de paramètres unifié sous « Débogage > Rechargement à chaud ». Nous avons également activé pour la première fois la possibilité de désactiver ou d’activer le rechargement à chaud XAML sur chaque plateforme, afin de vous de contrôler entièrement la mise en disponibilité de cette fonctionnalité. (Remarque : Aucun paramètre ne sera modifié au cours de cette migration, si bien que tous vos choix existants continueront à rester en vigueur dans le cadre de ce nouvel emplacement)
Paramètres de rechargement à chaud XAML consolidés
Paramètres de rechargement à chaud XAML consolidés

Éditeur de code XAML :

  • Support WinUI 3.0 IntelliSense : Dans cette version, nous avons activé un meilleur support d’IntelliSense pour les développeurs qui génèrent des applications à l’aide de la nouvelle préversion 3 de WinUI 3.0 ou version ultérieure. Pour en savoir plus sur WinUI 3.0, consultez la documentation et pour nous faire part de vos commentaires, visitez le référentiel Windows UI GitHub. Remarque : La dernière préversion de WinUI 3.0 est recommandée sur 16.9 Préversion 1 pour l’expérience d’outillage mise à jour.
  • Amélioration de la prise en charge de MVVM : Quand vous créez un document XAML, vous pouvez définir d:DataContext afin d’obtenir des fonctionnalités IntelliSense de liaison précises pour le document XAML. Dans le passé, la spécification manuelle du type de contexte de données était fastidieuse. En effet, vous deviez quitter le document XAML, rechercher le type de modèle d’affichage souhaité, puis copier-coller son espace de noms et son nom dans la déclaration d:DataContext. Dans cette version, nous introduisons une nouvelle fonctionnalité qui vous permet de déclarer rapidement un d:DataContext à l’aide d’une ampoule qui suggère les modèles d’affichage possibles.
XAML IntelliSense pour MVVM d:DataContext
XAML IntelliSense pour MVVM d:DataContext

Extensibilité

À 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