Partager via


Icône Visual StudioNotes de publication de Visual Studio 2019 version 16.0


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 dernière version, consultez le site Visual Studio.



Nouveautés dans Visual Studio 2019 version 16.0

Délai de prise en charge

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

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

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

Mises en production Visual Studio 2019 version 16.0

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 y trouverez des informations détaillées sur les versions de Visual Studio 2019.


Icône Notes de publication Visual Studio 2019 version 16.0.22

Publication : 12 janvier 2020

Avis de conseil de sécurité pour 16.0.22

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.


Icône Notes de publication Visual Studio 2019 version 16.0.21

Publication : 8 décembre 2020

Avis de conseil de sécurité pour 16.0.21

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.


Icône Notes de publication Visual Studio 2019 version 16.0.20

Publication : 10 novembre 2020

Avis de conseil de sécurité pour 16.0.20

CVE-2020-17100 Vulnérabilité de falsification de Visual Studio

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


Icône Notes de publication Visual Studio 2019 version 16.0.19

Publication : 13 octobre 2020

Dans cette version de 16.0.19

  • SDK .NET Code 2.1.616 ajouté à Visual Studio 2019.

Icône Notes de publication Visual Studio 2019 version 16.0.18

Publication : 8 septembre 2020

Problème résolu dans 16.0.18

  • Les versions de .NET Core qui ne sont plus supportées ne seront plus réinstallées lors d’une réparation ou d’une mise à niveau si elles ont été supprimées en dehors du programme d’installation de Visual Studio.

Avis de sécurité pour 16.0.18

CVE-2020-1130 Vulnérabilité liée à l’élévation de privilèges du Collecteur standard du hub de diagnostic

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. Un attaquant parvenant à exploiter cette vulnérabilité pourrait exécuter des processus dans un contexte élevé.

CVE-2020-1133 Vulnérabilité liée à l’élévation de privilèges du Collecteur standard du hub de diagnostic

Une vulnérabilité avec élévation de privilège existe quand le Collecteur standard du hub de diagnostic ne gère pas correctement les opérations de fichiers. Un attaquant parvenant à exploiter cette vulnérabilité pourrait exécuter des processus dans un contexte élevé.

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

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

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

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

CVE-2020-1045 Vulnérabilité permettant de contourner les fonctionnalités de sécurité dans Microsoft ASP.NET Core

Il existe dans Microsoft ASP.NET Core une vulnérabilité qui permet de contourner les fonctionnalités de sécurité et qui est due à la manière dont les noms de cookies encodés sont analysés. L’analyseur de cookie ASP.NET Core décode les chaînes de cookie entières, ce qui peut permettre à un attaquant de définir un deuxième cookie dont le nom est encodé en pourcentage.


Icône Notes de publication Visual Studio 2019 version 16.0.17

mise en production le 11 août 2020

Problème résolu dans 16.0.17

Avis de sécurité pour 16.0.17

CVE-2020-1597 Vulnérabilité de déni de service dans ASP.NET Core

Il existe une vulnérabilité de déni de service quand ASP.NET Core gère incorrectement les requêtes web. Un attaquant qui parvenait à exploiter cette vulnérabilité pouvait provoquer un déni de service sur une application web ASP.NET Core. La vulnérabilité peut être exploitée à distance, sans authentification.


Icône Notes de publication Visual Studio 2019 version 16.0.16

publication : 14 juillet 2020

Problèmes corrigés dans la version 16.0.16

Avis de sécurité pour 16.0.16

CVE-2020-1393 Vulnérabilité d’élévation de privilège du service Collecteur standard du hub de diagnostic

Une vulnérabilité d’élévation de privilège existe quand le Service Collecteur standard du concentrateur de diagnostic Windows ne parvient pas à assainir correctement l’entrée, causant un comportement de charge de bibliothèque non sécurisé.

CVE-2020-1416 Vulnérabilité d’élévation de privilèges de Visual Studio

Une vulnérabilité d’élévation de privilèges existe dans Visual Studio quand il charge des dépendances logicielles.

CVE-2020-1147 Vulnérabilité de déni de service .NET Core

Un attaquant distant non authentifié pouvait exploiter cette vulnérabilité en émettant des requêtes spécialement conçues pour une application ASP.NET Core ou une autre application qui analyse certains types de code XML. La mise à jour de sécurité corrige la vulnérabilité en restreignant les types qui peuvent être présents dans la charge utile XML.


Icône Notes de publication Visual Studio 2019 version 16.0.15

Publication : 9 juin 2020

Problèmes corrigés dans la version 16.0.15

Avis de sécurité pour 16.0.15

CVE-2020-1108 / CVE-2020-1108Vulnérabilité de déni de service dans .NET Core

Pour corriger totalement l’avis CVE-2020-1108, Microsoft a publié des mises à jour pour .NET Core 2.1 et .NET Core 3.1. Les clients qui utilisent l’une de ces versions de .NET Core doivent installer la dernière version de .NET Core. Consultez les notes de publication pour obtenir les derniers numéros de version et les dernières instructions de mise à jour de .NET Core.

CVE-2020-1202 / CVE-2020-1203 Vulnérabilité d’élévation de privilèges du service Collecteur standard du hub de diagnostics

Une vulnérabilité d’élévation de privilège existe lorsque le collecteur standard du hub de diagnostic ou le collecteur standard de Visual Studio ne parvient pas à gérer correctement les objets en mémoire.

CVE-2020-1293 / CVE-2020-1278 / CVE-2020-1257 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 lorsque le service Collecteur standard du hub de diagnostic ne gère pas correctement les opérations de fichiers


Icône Notes de publication Visual Studio 2019 version 16.0.14

Publication : 12 mai 2020

Problèmes corrigés dans la version 16.0.14

  • Ajout d’un changement qui permet aux administrateurs informatiques et aux ingénieurs de déploiement en entreprise de configurer des outils comme le client Microsoft Update et SCCM pour déterminer si les mises à jour de VS2019 16.0 hébergées sur Microsoft Update Catalog et WSUS peuvent être appliquées.

Avis de sécurité pour 16.0.14

CVE-2020-1108 Vulnérabilité de déni de service .NET Core

Un attaquant distant non authentifié pouvait exploiter cette vulnérabilité en émettant des requêtes spécialement conçues pour l’application .NET Core. La mise à jour de sécurité élimine la vulnérabilité en corrigeant la façon dont l’application web .NET Core gère les requêtes web.


Icône Notes de publication Visual Studio 2019 version 16.0.13

Publication : 14 avril 2020

Avis de sécurité pour 16.0.13

CVE-2020-0899Vulnérabilité d’élévation de privilèges Microsoft Visual Studio

Une vulnérabilité d’élévation de privilèges existe quand le service de mise à jour de Microsoft Visual Studio gère de manière incorrecte les autorisations sur les fichiers. Une personne malveillante qui parvient à exploiter cette vulnérabilité pourrait remplacer le contenu d’un fichier arbitraire dans le contexte de sécurité du système local.

CVE-2020-0900Vulnérabilité d’élévation de privilèges liée au service d’installation des extensions Visual Studio

Une vulnérabilité d’élévation de privilèges existe quand le service d’installation des extensions Visual Studio gère les opérations sur les fichiers de manière incorrecte. Un attaquant parvenant à exploiter la vulnérabilité peut supprimer des fichiers dans des emplacements arbitraires avec des autorisations élevées.

CVE-2020-5260Vulnérabilité liée à la fuite d’informations d’identification de Git pour Visual Studio due à une validation insuffisante sur les URL

Une vulnérabilité liée à la fuite d’informations d’identification existe quand des URL spécialement conçues sont analysées et envoyées à des applications d’assistance des informations d’identification. Cela peut entraîner l’envoi d’informations d’identification à un hôte incorrect.


Icône Notes de publication Visual Studio 2019 version 16.0.12

Publication : 10 mars 2020

Problèmes corrigés dans la version 16.0.12

Avis de sécurité Microsoft

CVE-2020-0793 et CVE-2020-0810 Vulnérabilité d’élévation de privilège du service Collecteur standard du hub de diagnostic

Une vulnérabilité d’élévation de privilège existe quand le Collecteur standard du hub de diagnostic gère mal les opérations sur les fichiers ou que le Service Collecteur standard du concentrateur de diagnostic Windows ne parvient pas à assainir correctement l’entrée.

CVE-2020-0884 Vulnérabilité d’usurpation d’identité pendant la création d’un complément Outlook Web

Une vulnérabilité d’usurpation d’identité existe pendant la création d’un complément Outlook Web si l’authentification multifacteur est activée

CVE-2020-0789 Vulnérabilité de déni de service liée au service d’installation des extensions Visual Studio

Une vulnérabilité de déni de service existe quand le service d’installation des extensions Visual Studio gère mal les liens physiques. Un attaquant qui parviendrait à exploiter la vulnérabilité pourrait amener un système cible à cesser de répondre.


Icône Notes de publication Visual Studio 2019 version 16.0.11

Publication : 14 janvier 2020

Avis de sécurité Microsoft

CVE-2020-0602 Vulnérabilité de déni de service dans ASP.NET Core

Un attaquant distant non authentifié pouvait exploiter cette vulnérabilité en émettant des requêtes spécialement conçues pour l’application ASP.NET Core. La mise à jour de sécurité élimine la vulnérabilité en corrigeant la façon dont l’application web ASP.NET Core gère les requêtes web.

CVE-2020-0603 Vulnérabilité d’exécution de code à distance dans ASP.NET Core

Un attaquant distant non authentifié pouvait exploiter cette vulnérabilité en émettant des requêtes spécialement conçues pour l’application ASP.NET Core. La mise à jour de sécurité élimine la vulnérabilité en corrigeant la façon dont l’application web ASP.NET Core gère les objets en mémoire.


Icône Notes de publication Visual Studio 2019 version 16.0.10

publication le 10 décembre 2019

Problèmes corrigés dans la version 16.0.10

Avis de sécurité Microsoft

CVE-2019-1349 Vulnérabilité liée à l’exécution à distance de Git pour Visual Studio en raison de restrictions trop faibles sur les noms de sous-modules

Il existe une vulnérabilité liée à l’exécution de code à distance quand Git rencontre des collisions de noms de sous-modules pour des répertoires de sous-modules frères. Une personne malveillante parvenant à exploiter cette vulnérabilité pourrait exécuter à distance du code sur l’ordinateur cible. La mise à jour de sécurité corrige la vulnérabilité en prenant une nouvelle version de Git pour Windows qui exige que le répertoire du clone des sous-modules soit vide.

CVE-2019-1350 Vulnérabilité liée à l’exécution à distance de Git pour Visual Studio en raison de la mise entre guillemets incorrecte d’arguments de ligne de commande

Il existe une vulnérabilité liée à l’exécution de code à distance quand Git interprète des arguments de ligne de commande avec des guillemets au cours d’un clonage récursif conjointement avec des URL SSH. Une personne malveillante parvenant à exploiter cette vulnérabilité pourrait exécuter à distance du code sur l’ordinateur cible. La mise à jour de sécurité corrige la vulnérabilité en prenant une nouvelle version de Git pour Windows qui résout le problème.

CVE-2019-1351 Vulnérabilité liée au remplacement de fichier arbitraire dans Git pour Visual Studio en raison de l’utilisation de noms de lecteurs non composés de lettres lors du clonage

Il existe une vulnérabilité liée au remplacement de fichier arbitraire dans Git quand les noms de lecteurs non composés de lettres contournent les contrôles de sécurité dans git clone. Une personne malveillante parvenant à exploiter cette vulnérabilité pourrait écrire dans des fichiers arbitraires sur l’ordinateur cible. La mise à jour de sécurité corrige la vulnérabilité en prenant une nouvelle version de Git pour Windows qui résout le problème.

CVE-2019-1352 Vulnérabilité liée à l’exécution à distance de Git pour Visual Studio en raison de la non-prise en charge des autres flux de données NTFS

Il existe une vulnérabilité liée à l’exécution de code à distance dans Git lors du clonage et de l’écriture dans le répertoire .git par le biais des autres flux de données NTFS. Une personne malveillante parvenant à exploiter cette vulnérabilité pourrait exécuter à distance du code sur l’ordinateur cible. La mise à jour de sécurité corrige la vulnérabilité en prenant une nouvelle version de Git pour Windows qui a été informée des autres flux de données NTFS.

CVE-2019-1354 Vulnérabilité liée au remplacement de fichier arbitraire dans Git pour Visual Studio en raison de l’absence de refus d’écrire des fichiers suivis contenant des barres obliques inverses

Il existe une vulnérabilité liée au remplacement de fichier arbitraire dans Git selon laquelle des entrées d’arborescence avec des barres obliques inverses et des liens symboliques malveillants pourraient sortir de l’arbre de travail. Une personne malveillante parvenant à exploiter cette vulnérabilité pourrait écrire dans des fichiers arbitraires sur l’ordinateur cible. La mise à jour de sécurité corrige la vulnérabilité en prenant une nouvelle version de Git pour Windows qui n’autorise pas cette utilisation des barres obliques inverses.

CVE-2019-1387 Vulnérabilité liée à l’exécution à distance de Git pour Visual Studio en raison d’une validation trop faible des noms de sous-modules dans les clones récursifs

Il existe une vulnérabilité liée à l’exécution de code à distance dans Git lors du clonage de manière récursive avec des sous-modules. Une personne malveillante parvenant à exploiter cette vulnérabilité pourrait exécuter à distance du code sur l’ordinateur cible. La mise à jour de sécurité corrige la vulnérabilité en prenant une nouvelle version de Git pour Windows qui renforce la validation des noms des sous-modules.

CVE-2019-1486 Vulnérabilité liée à la redirection d’URL Live Share

Une vulnérabilité liée à l’usurpation d’identité a été détectée dans l’extension Visual Studio Live Share, quand un invité connecté à une session Live Share a été redirigé vers une URL arbitraire spécifiée par l’hôte de session. Une personne malveillante aurait pu exploiter cette vulnérabilité et forcer l’ordinateur de l’invité à ouvrir un navigateur et à accéder à une URL malveillante sans consentement explicite. Cela faisait partie de la fonctionnalité « Serveur partagé » de Live Share qui autorisait le transfert automatique des ports pendant une session Live Share active. La dernière mise à jour corrige cette vulnérabilité en invitant l’invité Live Share à donner son consentement avant d’accéder à l’URL spécifiée par l’hôte.


Icône Notes de publication Visual Studio 2019 version 16.0.9

Publication : 15 octobre 2019

Avis de sécurité Microsoft

CVE-2019-1425Vulnérabilité liée à l’élévation des privilèges avec les packages NPM (publication : 12 novembre 2019)

Il existe une vulnérabilité liée à l’élévation des privilèges lorsque Visual Studio ne parvient pas à valider correctement les liaisons permanentes lors de l’extraction des fichiers archivés. Ces vulnérabilités sont dues aux packages NPM qui sont utilisés par Visual Studio. Pour plus d’informations, consultez dans les deux avertissements NPM suivants : npmjs.com/advisories/803 et npmjs.com/advisories/886. Les versions mises à jour de ces packages NPM sont incluses dans cette version de Visual Studio.


Icône Notes de publication Visual Studio 2019 version 16.0.8

Publication : 10 septembre 2019

Problèmes corrigés dans Visual Studio 2019 version 16.0.8

Avis de sécurité Microsoft

CVE-2019-1232 Vulnérabilité d’élévation de privilège du service Collecteur standard du hub de diagnostic

On parle de vulnérabilité d’élévation de privilège quand le service Collecteur standard du hub de diagnostic n’emprunte pas correctement l’identité de certaines opérations de fichiers. Un attaquant parvenant à exploiter cette vulnérabilité peut obtenir des privilèges élevés. Un attaquant disposant d’un accès sans privilège à un système vulnérable pourrait exploiter cette vulnérabilité. La mise à jour de sécurité corrige la vulnérabilité en garantissant que le service Collecteur standard du hub de diagnostic emprunte correctement l’identité des opérations de fichiers.


Icône Notes de publication Visual Studio 2019 version 16.0.7

Date de publication : 13 août 2019

Corrections des problèmes dans Visual Studio 2019 version 16.0.7

Avis de sécurité Microsoft

CVE-2019-1211 Git pour vulnérabilité d’élévation de privilèges Visual Studio

Une vulnérabilité d’élévation de privilèges existe dans Git pour Visual Studio lorsque l’analyse des fichiers de configuration n’est pas correctement effectuée. Un attaquant qui parvient à exploiter cette vulnérabilité peut exécuter du code dans le contexte d’un autre utilisateur local. Pour exploiter cette vulnérabilité, un attaquant authentifié doit modifier les fichiers de configuration Git sur un système avant une installation complète de l’application. L’attaquant doit ensuite convaincre un autre utilisateur du système d’exécuter des commandes Git précises. La mise à jour résout le problème en redéfinissant les autorisations requises pour modifier les fichiers de configuration.

**CVE-2019-1301 : Vulnérabilité de déni de service dans .NET Core

Il existe une vulnérabilité de déni de service quand .NET Core 2.1 gère incorrectement les requêtes web. Un attaquant qui parvenait à exploiter cette vulnérabilité pouvait provoquer un déni de service sur une application web .NET Core. La vulnérabilité peut être exploitée à distance, sans authentification.

La mise à jour élimine la vulnérabilité en corrigeant la façon dont l’application web .NET Core gèrent les requêtes web.


Icône Notes de publication Visual Studio 2019 version 16.0.6

Date de publication : 9 juillet 2019

Corrections des problèmes dans Visual Studio 2019 version 16.0.6

  • Correction de la prise en charge du narrateur sur les systèmes s’exécutant sur Windows 10 version 1903 ou avec .NET 4.8 installé.

Avis de sécurité Microsoft

CVE-2019-1075 Vulnérabilité d’usurpation d’identité dans ASP.NET Core

Des mises à jour de .NET Core sont publiées aujourd’hui et sont incluses dans cette mise à jour de Visual Studio. Cette version résout des problèmes de sécurité et d’autres problèmes importants. Pour plus d’informations, consultez les notes de publication de .NET Core.

CVE-2019-1077 Vulnérabilité de la mise à jour automatique de l’extension Visual Studio

Une vulnérabilité d’élévation de privilèges apparaît quand le processus de mise à jour automatique de l’extension Visual Studio n’effectue pas correctement certaines opérations de fichier. Un attaquant parvenant à exploiter cette vulnérabilité peut supprimer des fichiers dans des emplacements arbitraires. Pour tirer parti de cette vulnérabilité, l’attaquant a besoin d’un accès sans privilège à un système vulnérable. La mise à jour de sécurité résout cette vulnérabilité en sécurisant les emplacements où la mise à jour automatique de l’extension Visual Studio effectue des opérations de fichier.

CVE-2019-1113 La désérialisation WorkflowDesigner XOML permet l’exécution de code

Un fichier XOML faisant référence à certains types peut entraîner l’exécution de code aléatoire quand le fichier XOML est ouvert dans Visual Studio. Il existe désormais une restriction sur les types qui peuvent être utilisés dans les fichiers XOML. Si un fichier XOML contenant l’un des types récemment non autorisés est ouvert, un message s’affiche, expliquant que le type n’est pas autorisé.

Pour plus d’informations, voir https://support.microsoft.com/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.


Icône Notes de publication Visual Studio 2019 version 16.0.5

Publication : 11 juin 2019

Corrections des problèmes dans Visual Studio 2019 version 16.0.5


Icône Notes de publication Visual Studio 2019 version 16.0.4

Publication : 14 mai 2019

Problèmes résolus dans Visual Studio 2019 version 16.0.4

Avis de sécurité Microsoft

CVE-2019-0727 Vulnérabilité liée à l’élévation de privilèges du service de collecteur standard du hub de diagnostic

Une vulnérabilité avec élévation de privilèges apparaît lorsque le service de collecteur standard du hub de diagnostic n’effectue pas correctement certaines opérations de fichiers. Un attaquant parvenant à exploiter cette vulnérabilité peut supprimer des fichiers dans des emplacements arbitraires. Pour tirer parti de cette vulnérabilité, l’attaquant a besoin d’un accès sans privilège à un système vulnérable. La mise à jour de sécurité élimine cette vulnérabilité en sécurisant les emplacements où le service de collecteur standard du hub de diagnostic effectue des opérations de fichiers.


Icône Notes de publication Visual Studio 2019 version 16.0.3

publié le 30 avril 2019

Nouveautés dans Visual Studio 2019 version 16.0.3

  • Visual Studio Tools pour Kubernetes prend désormais en charge la dernière version de Azure Dev Spaces.

Problèmes résolus dans Visual Studio 2019 version 16.0.3


Icône Notes de publication Visual Studio 2019 version 16.0.2

Publication : 18 avril 2019

Problèmes résolus dans Visual Studio 2019 version 16.0.2


Icône Notes de publication Visual Studio 2019 version 16.0.1

Publication : 9 avril 2019

Problèmes résolus dans Visual Studio 2019 version 16.0.1


Icône Notes de publication Visual Studio 2019

publication le 2 avril 2019

Récapitulatif des nouveautés de Visual Studio 2019

Installer

IDE

  • Collaborez avec d’autres utilisateurs à l’aide de Visual Studio Live Share, qui est installé par défaut. La prise en charge supplémentaire des langages C++, VB.NET et Razor permet aux invités d’avoir une vue de la solution et de partager les modifications du contrôle de code source.
  • Ouvrez le code sur lequel vous avez récemment travaillé ou démarrez à partir de l’un des flux les plus utilisés comme Cloner, Ouvrir ou Créer un projet dans la nouvelle fenêtre de démarrage.
  • Créez des projets avec une expérience de recherche et de filtrage améliorée, avec la nouvelle liste de modèles triés par popularité.
  • Profitez d’une surface d’affichage agrandie verticalement pour votre code et d’une interface à l’apparence modernisée à travers de nouveaux changements visuels dans l’interpréteur de commandes.
  • Bénéficiez d’une qualité d’image plus nette dans votre IDE quelles que soient la configuration et/ou l’échelle choisies pour l’affichage, car nous avons amélioré la prise en charge de la résolution par moniteur.
  • Utilisez une fonctionnalité de recherche améliorée dans Visual Studio pour les menus, les commandes, les options et les composants installables.
  • Vérifiez rapidement l’« intégrité » de votre fichier de code grâce à un indicateur de document. Lancez et configurez le nettoyage du code en un clic sur cet indicateur.
  • Gérez facilement les fonctionnalités en préversion que vous avez choisies à partir de la nouvelle page Fonctionnalités en préversion disponible dans la boîte de dialogue Options.
  • Créez des projets avec une recherche basée sur les balises améliorée et une liste de « Modèles de projet récents » facilement accessible.
  • Créez des éléments directement à partir de Rechercher dans Visual Studio et obtenez des résultats plus rapidement avec une plus grande pertinence.
  • Tenez-vous informé des informations importantes, telles que les demandes Visual Studio Live Share, avec une nouvelle expérience de notifications.
  • Enregistrez une collection de correcteurs de nettoyage de code en tant que profil afin de pouvoir sélectionner facilement les correcteurs que vous souhaitez exécuter lors du nettoyage de code.
  • Déclenchez de nouveaux correctifs du code et refactorisations .NET.
  • Configurez des projets .NET Core plus facilement avec des fichiers projet de première classe.
  • Affichez l’état de vos extensions avec des balises Preview, Paid et Trial dans la boîte de dialogue Extensions et mises à jour.
  • Vérifiez et configurez les fonctionnalités Preview que vous souhaitez activer (les valeurs par défaut ont été réinitialisées dans cette préversion).
  • Tenez vos extensions à jour en excluant certaines API de la Fenêtre de test qui ont été marquées comme dépréciées dans cette version.
  • Connectez-vous, naviguez et clonez en un clic, ou connectez-vous à vos dépôts hébergés à partir d’Azure DevOps par le biais de la fenêtre de démarrage.
  • Installez des extensions pour d’autres hôtes de contrôle du code source afin de voir les dépôts détenus par vous et votre organisation.
  • Nous avons suivi vos commentaires pour améliorer le thème Bleu : nous avons baissé la luminosité, amélioré le contraste global et résolu d’autres problèmes d’utilisation.
  • Appliquez des préférences de style de code à partir de la ligne de commande avec l’outil global dotnet format.
  • MSBuild et Visual Studio ciblent maintenant .NET Framework 4.7.2 par défaut.
  • Nous avons supprimé les fonctionnalités liées à Azure App Service de l’Explorateur de serveurs. Les fonctionnalités équivalentes sont disponibles dans Cloud Explorer.

Performances

Débogage général et diagnostics

  • Utilisez des mots clés de recherche dans les fenêtres Espion, Automatique et Variables locales pendant le débogage pour trouver plus facilement des objets ou des valeurs.
  • Affichez une liste déroulante de spécificateurs de format dans les fenêtres Espion, Automatique et Variables locales lors de l’inspection des données.
  • Utilisez un visualiseur personnalisé, désormais compatible avec .NET Core.
  • Déboguez vos applications volumineuses à l’aide de très nombreux modules et fichiers PDB.
  • Lancez Google Chrome avec des arguments personnalisés et déboguez vos applications JavaScript dans l’IDE Visual Studio.
  • Utilisez la mise en surbrillance de chemin réactif pour les outils d’allocation d’objets .NET et le processeur dans le Profileur de performances.
  • Arrêt quand la valeur de la propriété d’un objet spécifique change dans une application .NET Core 3.0+ utilisant des points d’arrêt sur variable, une fonctionnalité qui était au départ propre à C++.
  • Depuis la préversion 1, nous avons mis à jour l’interface utilisateur de recherche dans les fenêtres Automatique, Variables locales et Espion avec une interface plus simple. La fonction Rechercher plus profondément a été remplacée par une liste déroulante afin de vous permettre de sélectionner plus rapidement le niveau souhaité pour les recherches initiales et ultérieures.

Contrôle de code source et Team Explorer

  • Stockez temporairement les modifications apportées le temps de travailler sur une autre tâche grâce à la prise en charge du remisage (stash) Git par les outils Git de Team Explorer.
  • Essayez l’extension facultative Demandes de tirage pour Visual Studio, qui est disponible dans la Place de marché Visual Studio. Cette extension intègre les modifications de demande de tirage (pull request) dans Visual Studio.
  • Découvrez la nouvelle expérience d’utilisation des éléments de travail Azure DevOps qui est axée sur les flux de travail développeur : les vues d’éléments de travail des utilisateurs, la création de branche à partir d’un élément de travail, la recherche d’éléments de travail avec #mentions et la modification intraligne.

Extensibilité

  • Utilisez un seul SDK Visual Studio unifié dans le package NuGet Microsoft.VisualStudio.SDK.
  • Profitez de notre mise à jour du projet VSIX pour inclure désormais une classe AsyncPackage.
  • Expérimentez un nouveau modèle Projet VSIX vide que nous avons ajouté.
  • Déterminez si une extension est gratuite, payante ou en version d’essai, comme c’est maintenant indiqué dans la boîte de dialogue Extensions et mises à jour.

Langages de programmation

C#

Bénéficiez d’un aperçu des fonctionnalités de langage 8.0 désormais prises en charge par le compilateur C#, notamment :

  • Types référence nullables : quand la fonctionnalité est activée (par exemple, avec #nullable enable ou au niveau du projet avec <NullableContextOptions>enable</NullableContextOptions>), les types référence sont traités comme nullables s’ils sont annotés avec ?, et comme non-nullables dans le cas contraire. Le compilateur analyse ensuite où circulent les valeurs null, et affiche des avertissements relatifs aux cas d’usage potentiellement non sécurisés.
  • Expressions switch : offre une sémantique similaire à switchdans le contexte d’une expression.
  • Correspondance de modèle récursif : de nouveaux modèles permettent de tester des champs/propriétés et des éléments positionnels (provenant de tuples ou d’une déconstruction).
  • Prise en charge des types Range et Index utilisés dans CoreFX pour le découpage, notamment la syntaxe des littéraux x..y pour les plages.
  • Les flux asynchrones représentés par IAsyncEnumerable<T> peuvent être énumérés de manière asynchrone avec await foreach, et peuvent être générés avec des méthodes d’itérateur async IAsyncEnumerable<T>.
  • Déclarations using : suppression à la fin du bloc actif, sans augmenter le niveau d’imbrication. Les structs ref peuvent être supprimés en implémentant une méthode Dispose() publique.
  • Fonctions locales static : les fonctions locales marquées avec static ne peuvent pas référencer this ou des variables dans les fonctions englobantes.
  • Les expressions lambda et les fonctions locales peuvent désormais déclarer des paramètres et des variables locales qui masquent les noms des variables des fonctions englobantes.
  • Attribution de fusion null : x ??= y; attribue uniquement y à x si x était null.

Apprenez-en davantage dans la vue d’ensemble de C# 8.0 par Mads.

Pour plus d’informations, consultez l’état des fonctionnalités de langage C# et les changements cassants.

En outre, vous pouvez utiliser des fonctionnalités de langage C# plus modernes dans Visual Studio par défaut.

C++
  • Écrivez votre code C++ et XAML plus rapidement à l’aide de Visual Studio IntelliCode, une extension facultative qui fournit des suggestions AI pour votre code.
  • Recevez des avertissements d’analyse du code dans l’éditeur. L’analyse du code s’exécute automatiquement en arrière-plan et les avertissements sont affichés sous forme de tildes verts.
  • Essayez la nouvelle barre de modèles, qui utilise l’interface utilisateur de fenêtre d’aperçu et prend en charge les modèles imbriqués.
  • Exécutez la nouvelle implémentation du vérificateur de profil de durée de vie C++.
  • Configurez vos projets CMake à l’aide du nouvel éditeur de paramètres CMake, qui fournit une alternative à CMakeSettings.json.
  • Essayez les nombreuses améliorations back-end, notamment la vectorisation OpenMP SIMD, l’accélération de l’édition de liens et une incorporation (inlining) plus agressive.
  • Ouvrez les caches CMake existants générés par des outils externes, tels que CMakeGUI, ou par des systèmes de génération de métadonnées personnalisés.
  • Améliorez l’analyse avec /Qspectre afin de fournir une aide corrective pour Spectre Variant 1 (CVE-2017-5753). Pour plus d’informations, consultez le billet de blog de l’équipe Visual C++.
  • Basculez rapidement entre vos exemples d’arguments précédents, maintenant que la barre de modèles de la fonctionnalité IntelliSense du modèle contient une liste déroulante Utilisé récemment.
F#
  • F# 4.6 est désormais publié, de même que diverses autres améliorations du compilateur.
  • Profitez de l’amélioration des performances pour les solutions volumineuses et diverses résolutions de bogues pour les outils F# et F#.
  • Apprenez-en davantage sur le travail exceptionnel effectué par les contributeurs open source pour le langage et les outils F#.
JavaScript/TypeScript
Python
  • Ajoutez facilement des environnements Python conda et virtuels à l’aide de la boîte de dialogue Ajouter un environnement Python.
  • Travaillez plus facilement avec les environnements Python, notamment grâce à l’amélioration de la prise en charge des espaces de travail Ouvrir un dossier à l’aide d’une nouvelle barre d’outils de sélecteur d’environnement Python.
  • Créez des sessions Visual Studio Live Share et collaborez sur du code Python avec d’autres utilisateurs de Visual Studio.

Technologies Web

Outils de conteneur

  • Bénéficiez d’un projet unique simplifié pour la conteneurisation et le débogage.
  • Tirez parti de l’ajout de la prise en charge du débogage Alpine et d’images de base supplémentaires.

Développement mobile avec Xamarin

Plateforme Windows universelle (UWP)

  • Conservez les commentaires, l’espacement, les espaces de noms et tous les autres changements apportés au texte quand vous effectuez des modifications à partir du concepteur. Le concepteur de manifeste de package reste désormais totalement fidèle aux changements xml dans le fichier Package.appxmanifest.
  • Utilisez le projet Création de package d’application Windows pour les projets .NET Core afin de générer des packages MSIX.
  • Utilisez l’Assistant Création de package pour effectuer des soumissions directes au Microsoft Store.
  • Le déploiement sur les appareils Windows Mobile n’est plus pris en charge dans Visual Studio 2019. Les tentatives de déploiement sur un appareil Windows 10 Mobile entraîne une erreur indiquant que « Le déploiement sur les appareils Windows Mobile n’est pas pris en charge dans Visual Studio 2019 ». Si vous avez besoin de continuer à travailler sur une application pour des appareils Windows 10 Mobile, continuez à utiliser Visual Studio 2017.

Outils de débogage XAML :

  • Modifier et continuer XAML prend désormais en charge x:bind (UWP) : La fonctionnalité Modifier et continuer XAML prend désormais en charge la modification des liaisons de données créées avec x:bind pour les chemins contenant des propriétés publiques, le nom de l’élément, les chemins de propriété indexés (collections), les propriétés attachées et les propriétés de cast. Les autres changements ne sont pas pris en charge. Cette amélioration est disponible pour toutes les applications où les versions minimale et maximale ciblent le SDK Windows 10 version 1809 (build 10.0.17763) ou ultérieure. (Remarque : La fonctionnalité Modifier et continuer XAML s’appelle Rechargement à chaud XAML à compter de Visual Studio 2019 Update 2+).

SQL Server Data Tools

  • Profitez de la mise à jour de SSDT et DacFX, qui inclut désormais la prise en charge du classement UTF-8.

Présentation détaillée des nouveautés de Visual Studio 2019

Installer

  • Vous pouvez maintenant choisir comment installer les mises à jour de Visual Studio. Le mode par défaut est « Tout télécharger, puis installer », ce qui vous permet de continuer à utiliser Visual Studio pendant le téléchargement des mises à jour. Notez que si vous sélectionnez « Tout télécharger, puis installer », vous devez terminer l’installation en ouvrant Visual Studio Installer et en sélectionnant Continuer.
  • Les mises à jour de Visual Studio seront maintenant téléchargées en arrière-plan. Ces téléchargements auront lieu uniquement quand votre ordinateur sera inactif. Une fois les téléchargements terminés, vous recevrez une notification dans Visual Studio vous signalant que le téléchargement est maintenant prêt à être installé.
  • Vous pouvez désormais contrôler le mode d’installation des mises à jour, et s’il faut ou non les télécharger via le menu Outils > Options en changeant les paramètres de la page Mises à jour du produit.
Options de mise à jour du produit
*Options de mise à jour du produit*

Fenêtre de démarrage

La nouvelle fenêtre de démarrage simplifie l’expérience de lancement pour vous permettre d’accéder plus rapidement à votre code au démarrage de Visual Studio.

  • Affichez vos projets et dossiers récents, et ouvrez-les en un seul clic. Épinglez et supprimez des éléments de la liste par le biais du menu contextuel.
  • Clonez ou validez le code à l’aide de n’importe quelle URL Git publique ou privée, et ouvrez ainsi automatiquement le dossier dans l’IDE.
  • Connectez-vous, parcourez et clonez ou connectez-vous en un clic à vos référentiels hébergés à partir d’Azure DevOps, ou installez des extensions pour d’autres hôtes de contrôle de code source afin d’afficher les référentiels dont votre organisation ou vous-même êtes propriétaire.
  • Parcourez votre disque local ou partage réseau pour accéder aux projets, solutions ou dossiers contenant le code, et ouvrez-les dans l’IDE.
  • Sélectionnez un modèle de projet qui génère automatiquement des modèles de code pour vous aider à démarrer un nouveau projet ou une nouvelle solution.
  • Recherchez des modèles de projet par titre, description et balises, ou filtrez d’après les langages, plateformes et types de projets disponibles. La liste par défaut montre tous les modèles disponibles, tandis que la liste des 10 derniers modèles de projet utilisés apparaît dans le volet gauche afin d’en faciliter l’accès. Un Assistant de deux pages vous permet de vous concentrer sur une décision à la fois.
Fenêtre de démarrage
*Nouvelle fenêtre de démarrage*

Shell et plateforme

  • Identifiez rapidement votre version de Visual Studio ouverte et utilisée grâce à la nouvelle icône améliorée du produit. Cette icône est également plus visible sur de nombreux arrière-plans.
  • Découvrez l’apparence modernisée de Visual Studio avec un thème bleu actualisé qui rend l’interface utilisateur plus claire tout en restant conforme à nos normes d’accessibilité.
  • Affichez plus de code à la fois grâce aux changements effectués pour privilégier la compacité et agrandir verticalement l’espace d’affichage dans l’IDE. Nous avons combiné la barre de titre et la barre de menus tout en conservant les fonctionnalités existantes.
  • Utilisez notre nouveau paramètre expérimental permettant la prise en charge de la résolution par moniteur dans Visual Studio. Quand il est activé, ce paramètre améliore la netteté du rendu des éléments de Visual Studio, tels que l’interpréteur de commandes et l’éditeur, quelles que soient la configuration et/ou l’échelle de l’affichage.
  • Expérimentez la recherche avancée pour les menus, les commandes, les options et les composants installables. Notre nouvelle fonctionnalité de recherche affiche maintenant les résultats de façon dynamique, gère les fautes d’orthographe et retourne des informations utiles (par exemple, les raccourcis clavier) dans les résultats de la recherche.
Recherche Visual Studio avec des résultats
*Recherche améliorée dans Visual Studio*
  • Affichez des informations sur l’intégrité du fichier actuellement ouvert à l’aide de l’indicateur d’intégrité du document.
Indicateur d’intégrité du document avec des problèmes
*Indicateur d’intégrité du document – problème dans le document*
Indicateur d’intégrité du document sans problème
*Indicateur d’intégrité du document – pas de problèmes*
  • Si vous développez en C#, vous pouvez rapidement supprimer certaines des suggestions de code les plus courantes à l’aide de la fonctionnalité Nettoyage du code.
  • Configurez le nettoyage du code pour sélectionner les correctifs à exécuter.
Boîte de dialogue de configuration du nettoyage du code
*Configurer le nettoyage du code*
  • Affichez le contenu de l’historique du Presse-papiers à partir d’un menu contextuel qui développe le Presse-papiers circulaire (Ctrl+Maj+V).
Menu contextuel de Clipboard Ring
*Menu contextuel du Presse-papiers circulaire*
  • Nous avons amélioré l’expérience de recherche en :
    • Ajoutant des filtres pour les menus, composants et modèles.
    • Incorporant vos sélections de recherche afin de vous donner les résultats de recherche les plus pertinents.
    • Vous permettant de créer et d’ajouter de nouveaux projets/éléments à votre solution directement à partir de Rechercher dans Visual Studio.
  • L’expérience PMA améliorée est désormais activée par défaut pour les utilisateurs qui disposent de la configuration minimale requise (.NET 4.8 Preview & et Mise à jour de Windows du 10 avril 2018 ou version ultérieure). Des fenêtres d’outils telles que Boîte à outils, Points d’arrêt, Espion, Variables locales, Automatique et Pile des appels ont été converties vers PMA, et sont ainsi affichées de manière nette quelle que soit votre configuration d’affichage et/ou de mise à l’échelle.
  • Une nouvelle expérience de notification ajoute :
    • Une nouvelle expérience de compteurs et d’icônes à la barre d’état.
    • Un nouveau mécanisme de notification toast.
    • Des notifications de mises à jour de Visual Studio et d’expiration de licence Visual Studio.
  • Une expérience de thème Bleu révisée qui répond aux commentaires en réduisant la luminosité, en améliorant le contraste et en résolvant d’autres problèmes d’utilisation.
  • Les fonctionnalités de glissement de fenêtre ont été améliorées en exploitant l’espace libre disponible dans la région de la barre d’outils en tant que région pouvant être déplacée.
  • Vous pouvez maintenant enregistrer une collection de correcteurs de nettoyage de code en tant que profil, afin de pouvoir sélectionner rapidement les correcteurs que vous souhaitez exécuter lors du nettoyage de code.
Profils de nettoyage Visual Studio Code
*Profils de nettoyage Visual Studio Code*
  • Nous avons ajouté des étiquettes dans la boîte de dialogue Extensions et mises à jour pour vous aider à comprendre rapidement si une extension est disponible en préversion, s’il s’agit d’une extension payante ou si elle est en période d’essai.
Boîte de dialogue Extensions et mises à jour avec étiquettes
Boîte de dialogue Extensions et mises à jour avec étiquettes*
  • IAsyncQuickInfoSourceProvider est désormais la méthode recommandée pour implémenter des info-bulles de données dans Visual Studio 2019 et les versions ultérieures. Les API Info express de l’éditeur hérité, IVsTextTipData et TextTipData, sont dépréciées dans Visual Studio 2019 Preview 1.
  • Les balises actives de l’éditeur (famille d’interfaces ISmartTag* dans l’espace de noms Microsoft.VisualStudio.Language.Intellisense) ont été dépréciées en faveur de l’API LightBulb et ne sont plus prises en charge à compter de Visual Studio 2019 Preview 1.
  • Les options de solution Afficher les configurations de build avancées, Toujours afficher la solution et Enregistrer les nouveaux projets lors de leur création ont été supprimées, car elles étaient peu utilisées. Ces valeurs ont été définies sur leur valeur par défaut, True.
  • Acceptez ou refusez certaines fonctionnalités en préversion depuis la nouvelle page Fonctionnalités en préversion, accessible via Outils > Options > Environnement > Fonctionnalités en préversion.

Performances

  • Nous avons ajouté un nouveau raccourci pour Générer la sélection pour les dossiers et les solutions : Ctrl+B.
  • Ouvrez rapidement des solutions de grande taille en chargeant votre solution avec tous les projets déchargés. Ne pas charger les projets
  • Choisissez les projets à charger à l’ouverture de la solution avec des fichiers de filtre de solution.
    • Créez un fichier de filtre de solution en déchargeant les projets que vous ne voulez pas ouvrir automatiquement, en cliquant avec le bouton droit sur la solution et en sélectionnant Enregistrer comme filtre de solution. Vous pouvez ensuite utiliser ce fichier de filtre pour ouvrir la solution à chaque fois que vous en avez besoin. Filtres de solution
  • Nous avons ajouté une commande Tout générer pour les fichiers CMake : Ctrl+Maj+B.
  • Nous avons amélioré les performances d’IntelliSense dans les fichiers C++ dans les projets CMake.
  • Nous avons ajouté une commande pour charger les dépendances de projet non chargées aux menus contextuels de projet et de solution.
  • Les notifications de conseils pour améliorer les performances de Visual Studio sont désormais conservés dans le centre de performances, accessible via Aide > Gérer les performances de Visual Studio.
  • Vous pouvez maintenant voir la progression du chargement de votre solution dans le centre d’état des tâches, ainsi qu’être averti de la fin du chargement.
  • Choisissez les projets à charger à l’ouverture de la solution avec des fichiers de filtre de solution.
    • Créez un fichier de filtre de solution en déchargeant les projets que vous ne voulez pas ouvrir automatiquement, en cliquant avec le bouton droit sur la solution et en sélectionnant Enregistrer comme filtre de solution. Vous pouvez ensuite utiliser ce fichier de filtre pour ouvrir la solution à chaque fois que vous en avez besoin.
  • Essayez les fonctionnalités améliorées de détection des ressources de build et de recherche de fichiers quand vous appuyez sur Ctrl+T dans les scénarios Ouvrir un dossier.
  • Vous pourrez profiter de certaines améliorations des performances maintenant que l’éditeur Visual Studio limite l’impact des composants auxiliaires sur les performances de frappe. En particulier, l’éditeur annulera automatiquement les opérations non essentielles de longue durée lors de la frappe.
  • Vous pouvez configurer le comportement de limitation des composants auxiliaires de Visual Studio via Outils > Options > Éditeur de texte > Avancé :
Options de latence de frappe de Visual Studio
*Options de latence de la frappe de Visual Studio*
  • Vous pouvez maintenant désactiver la restauration de l’état de la hiérarchie de projets de la session précédente dans la fenêtre Outil de l’Explorateur de solutions. Nous avons implémenté ce changement, car le lancement d’une telle restauration à l’ouverture de la solution pouvait différer le chargement de la solution.
    • Activez ou désactivez cette option dans Outils > Options > Projets et solutions > Général.
Paramètres de restauration - Chargement de la solution
*Paramètres de restauration du chargement de solution*
* Vous pouvez désormais désactiver la restauration de l’état de la fenêtre Outil de la session précédente et, à la place, toujours charger l’Explorateur de solutions et Team Explorer au démarrage. Nous avons implémenté ce changement, car le lancement d’une telle restauration pouvait différer le chargement de la solution au démarrage. * Activez ou désactivez cette option dans **Outils > Options > Environnement > Démarrage**.

Débogage général et diagnostics

Débogage général
  • Avec la nouvelle fonctionnalité de recherche que nous avons intégrée aux fenêtres Espion, Automatique et Variables locales, vous pouvez utiliser des mots clés pour trouver des éléments de code, les mettre en surbrillance et y accéder directement.
Recherche de mots clés dans Espion
Recherche dans la fenêtre Espion
  • Affichez une liste déroulante de spécificateurs et d’options pour définir le format des données dans les fenêtres Espion, Automatique et Variables locales en ajoutant une virgule à un élément de la liste.
Liste déroulante de spécificateurs de format dans Espion
Liste déroulante de spécificateurs de format dans la fenêtre Espion
  • Vous bénéficiez maintenant de la prise en charge des visualiseurs DataSet et personnalisés pour .NET Core.
Visualiseur DataSet pour .NET Core
Visualiseur DataSet pour applications .NET Core
  • Pour les applications C++ exécutées sur Windows, les fichiers PDB se chargent maintenant dans un processus 64 bits distinct. Ce changement résout plusieurs problèmes de plantage qui pouvaient survenir quand le débogueur manquait de mémoire au moment du débogage d’applications contenant de nombreux modules et fichiers PDB.
Points d’arrêt sur variable managés

Vous pouvez désormais effectuer un arrêt quand la valeur de la propriété d’un objet change dans une application .NET Core (version 3.0 ou supérieure) en utilisant des points d’arrêt de données, une fonctionnalité qui était au départ propre à C++. Ils constituent une alternative intéressante au simple placement d’un point d’arrêt sur le setter d’une propriété. En effet, un point d’arrêt de données peut être centré sur la propriété d’un objet spécifique même quand il est en dehors de l’étendue, tandis que la première option peut provoquer des arrêts constants et non pertinents si des centaines d’objets appellent cette fonction.

Points d’arrêt de données pour .NET Core
Points d’arrêt sur variable dans une application .NET Core
Mises à jour de l’expérience utilisateur dans les recherches dans la fenêtre Espion

Nous avons simplifié l’interface utilisateur de recherche dans les fenêtres Automatique, Variables locales et Espion. La fonction Rechercher plus profondément a été remplacée par une liste déroulante afin de vous permettre de sélectionner plus rapidement le niveau souhaité pour les recherches initiales et ultérieures.

Appliquer des préférences de style de code
  • Vous pouvez désormais appliquer des préférences de style de code à partir de la ligne de commande avec l’outil global dotnet format. Pour effectuer l’installation, vous avez besoin du SDK .NET Core 2.1 ou ultérieur. Exécutez la commande suivante dans votre terminal préféré : dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10
Vidéo sur dotnet format
Exécutez dotnet format à partir de la ligne de commande.

Extensibilité

  • Vous ne pouvez plus installer les extensions créées avec le format d’extension vsixmanifest V1 dans Visual Studio 2019. V1 avait été introduit dans Visual Studio 2010 et avait été déprécié dans Visual Studio 2017 en raison du risque de problèmes de fiabilité avec Visual Studio. Dans Visual Studio 2019, la prise en charge de V1 a été complètement supprimée. Les extensions ciblant Visual Studio 2019 doivent être regénérées avec la version V2 ou V3 du format vsixmanifest.
  • Vous êtes désormais averti quand une extension est chargée automatiquement de façon synchrone. Notez que l’extension sera chargée et fonctionnera normalement dans cette version, mais que cela n’est pas garanti dans la prochaine mise à jour de Visual Studio 2019. Vous trouverez plus d’informations à ce sujet dans notre billet de blog sur l’amélioration de la réactivité dans les scénarios critiques en mettant à jour le comportement de chargement automatique des extensions.
Package NuGet du SDK unifié

Dans le passé, les auteurs d’extensions devaient faire de nombreuses références distinctes aux packages NuGet individuels du SDK Visual Studio qu’ils devaient utiliser dans leur extension. Les versions des différents packages n’étaient pas toujours alignées, ce qui provoquait souvent des conflits de dépendance au moment de la compilation ainsi que des problèmes de runtime.

Pour résoudre ces problèmes, utilisez un nouveau package appelé Microsoft.VisualStudio.SDK qui contient des dépendances sur tous les packages composant le SDK Visual Studio. Il résout le problème d’incompatibilité de versions et permet de savoir facilement quelle version utiliser. Utilisez simplement la version du package qui correspond à la version la plus ancienne de Visual Studio que votre extension prend en charge. Vous aurez alors accès à l’ensemble du SDK.

Pour le moment, seule la version 15.9 du package SDK existe, mais d’autres versions seront disponibles dans les mois à venir jusqu’à la version 14.0.

Modèles de projet nouveaux et mis à jour

Le modèle Projet VSIX a connu plusieurs mises à jour en vue de le simplifier et de l’améliorer :

  • Utilises le package NuGet du SDK unifié
  • Inclut une classe AsyncPackage
  • Ne nécessite plus de fichier .resx pour compiler un package
  • Cible .NET Framework 4.7.2

Un nouveau modèle de projet VSIX vide a été créé. Il est identique au modèle Projet VSIX, mais sans la classe AsyncPackage. Il fait également référence au package NuGet du SDK unifié en fournissant un bon point de départ pour les extensions MEF et d’autres types d’extension sans package.

Gratuit/Payant/Essai

Il n’était pas simple de voir si une extension était marquée comme gratuite, payante ou à l’essai. C’est différent à présent. En effet, dans la boîte de dialogue Extensions et mises à jour, chaque extension qui est un essai ou qui est payante est clairement marquée comme tel. Les extensions qui n’ont pas étiquette d’essai/payante sont gratuites.

Outils de test

Des API supplémentaires dans la fenêtre de test qui étaient auparavant non documentées mais marquées comme publiques ont été ajoutées à la liste de dépréciation.

Contrôle de code source

  • Stockez temporairement les modifications apportées le temps de travailler sur une autre tâche grâce à la nouvelle prise en charge du remisage (stash) Git par les outils Git de Team Explorer.
  • Validez, exécutez et déboguez les demandes de tirage (pull request) d’Azure Repos sans quitter votre IDE, grâce à notre nouvelle expérience de demande de tirage disponible dans Visual Studio 2019. Pour démarrer, vous pouvez télécharger l’extension Demandes de tirage (pull request) pour Visual Studio à partir de Visual Studio Marketplace.
Nouvelle expérience de demande de tirage (pull request)
Nouvelle expérience de demande de tirage (pull request)

MSBuild

  • La version de l’ensemble d’outils MSBuild a été changée de 15.0 à Current. MSBuild.exe se trouve maintenant dans %VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exe.
  • MSBuild et Visual Studio ciblent maintenant .NET Framework 4.7.2. Si vous souhaitez utiliser de nouvelles fonctionnalités de l’API MSBuild, vous devez également mettre à niveau votre assembly, mais le code existant continuera de fonctionner.

C#

Pour chaque version antérieure à Visual Studio 2019, la version de langage C# par défaut était toujours équivalente à Dernière version principale. Dans Visual Studio 2017, C# a évolué et trois versions mineures ont été publiées : 7.1, 7.2 et 7.3. Toutefois, les nouveaux projets utilisaient toujours par défaut C# 7.0. Cela s’est avéré frustrant pour les développeurs C# qui voulaient utiliser les nouvelles fonctionnalités, mais devaient modifier manuellement la version de langage pour chaque nouveau projet.

Pour résoudre ce problème, la version de langage C# par défaut est déterminée par son framework cible :

  • Si vous ciblez .NET Core 3.0 Preview, la version de langage C# sera C# 8.0 Preview.
  • Si vous ciblez .NET Framework ou toute version autre qu’une préversion de .NET Core, la version de langage C# sera C# 7.3.

Cela permet d’utiliser les dernières fonctionnalités de langage C# stable par défaut et, en cas d’utilisation de préversions de .NET Core, d’utiliser les fonctionnalités de langage C# 8.0 Preview qui s’alignent avec .NET Core 3.0 Preview.

Si vous spécifiez une version de langage par le biais de LangVersion dans un fichier projet ou un fichier de propriétés, cette version de langage remplace la valeur par défaut décrite précédemment.

C++

  • Collaborez en temps réel, car Visual Studio Live Share prend maintenant en charge C++.
  • Développez plus rapidement en utilisant IntelliCode, une extension facultative qui exploite toutes ses données d’apprentissage et le contexte de votre code pour suggérer les éléments de code que vous êtes le plus susceptible d’utiliser en haut de votre liste de saisie semi-automatique. Pour C++, IntelliCode est le plus performant quand vous utilisez des bibliothèques populaires comme STL.
  • Nous avons renommé plusieurs noms de modèles de projet et changé certaines descriptions en raison de la mise à jour de la boîte de dialogue Nouveau projet.
  • Nous avons supprimé le composant expérimental Clang/C2. Utilisez l’ensemble d’outils MSVC pour garantir une totale conformité aux normes C++ avec /permissive- et/ou /std:c++17, ou la chaîne d’outils Clang/LLVM pour Windows. Pour plus d’informations, consultez leBlog de l’équipe Visual C++.
  • Le commutateur /Gm du compilateur C++ a été déprécié. Désactivez le commutateur /Gm dans vos scripts de build s’il y est défini explicitement. Sinon, vous pouvez ignorer en toute sécurité l’avertissement de dépréciation de /Gm, car il ne sera pas traité comme une erreur quand vous utilisez /WX (« Traiter les avertissements comme des erreurs »).
  • L’expérience Android C++ utilise désormais Android SDK 25 et Android NDK 16b par défaut.
Productivité
  • L’analyse du code s’exécute désormais automatiquement en arrière-plan. Les avertissements sont marqués par des tildes verts dans l’éditeur à mesure que vous tapez.
  • La barre de modèles utilise maintenant l’interface utilisateur de la fenêtre d’aperçu plutôt qu’une fenêtre modale, prend en charge les modèles imbriqués et prérenseigne les arguments par défaut dans la fenêtre d’aperçu.
  • Un correctif automatique pour l’avertissement d’analyse du code NULL->nullptr (C26477 USE_NULLPTR_NOT_CONSTANT) est disponible via le menu Ampoule sur les lignes correspondantes, activé par défaut dans l’ensemble de règles C++ Core Check Type Rules (Règles de types – Contrôles C++ principaux). Autres correctifs rapides dans l’IDE : ajout de directives #include manquantes, correction de point-virgules manquants et correction des utilisations incorrectes de « * » plutôt que « & ».
  • Les en-têtes précompilés ne sont plus générés par défaut pour les applications de bureau et console C++.
  • Atteindre la définition fonctionne désormais sur les directives #include et ouvre le fichier correspondant. Cela comprend le raccourci F12, offrant ainsi un moyen facile de naviguer dans votre code.
  • Le fait de pointer sur une accolade fermante d’un bloc de code fournit des informations utiles sur le contexte de ce bloc.
  • Nous avons ajouté la prise en charge dans ConcurrencyChecker des types STL connus à partir de l’en-tête <mutex>.
  • Une implémentation partielle mise à jour du vérificateur de profil de durée de vie est disponible pour la détection des références et des pointeurs non résolus.
  • Nous avons ajouté la prise en charge initiale dans le compilateur de l’opérateur C++20 <> pour la comparaison triple.
CMake
  • Nous avons amélioré les performances d’IntelliSense pour les fichiers C++ dans les projets CMake.
  • Visual Studio vous aide à démarrer votre développement en C++ avec CMake sur Linux en détectant si vous avez une version compatible de CMake sur votre ordinateur Linux. Si ce n’est pas le cas, il propose de l’installer pour vous.
  • L’Éditeur de paramètres CMake fournit une alternative à CMakeSettings.json et offre une parité avec CMakeGUI.
  • Le menu CMake a été supprimé et réorganisé pour une parité plus proche avec les projets et solutions.
  • Les paramètres incompatibles dans cmakesettings, tels que les incompatibilités d’architectures ou les paramètres de générateur CMake incompatibles, sont marqués par des tildes dans l’éditeur JSON et par des erreurs dans la liste d’erreurs.
  • La chaîne d’outils vcpkg est automatiquement détectée et activée pour les projets CMake qui sont ouverts dans l’IDE, une fois que vcpkg integrate install a été exécuté. Ce comportement peut être désactivé en spécifiant un fichier de chaîne d’outils vide dans cmakesettings.
  • Les projets CMake autorisent maintenant le débogage Uniquement mon code par défaut.
  • Les avertissements d’analyse statique peuvent désormais être traités en arrière-plan et affichés dans l’éditeur pour les projets CMake.
  • Nous avons ajouté des messages de début et de fin de génération et de configuration plus clairs pour les projets CMake, ainsi que la prise en charge de l’interface utilisateur de progression de génération de Visual Studio. De plus, il existe désormais un paramètre de niveau de détail CMake dans Outils > Options pour personnaliser le niveau de détail des messages de build et de configuration CMake dans la fenêtre Sortie.
  • Le paramètre « cmakeToolchain » est désormais pris en charge dans CMakeSettings pour spécifier des chaînes d’outils sans modifier manuellement la ligne de commande CMake.
Back-end
  • Nous avons implémenté des améliorations de débit de génération, notamment la gestion par l’éditeur de liens des temps d’E/S de fichier et d’édition de liens dans la création et la fusion de type PDB.
  • Nous avons ajouté la prise en charge de base de la vectorisation SIMD OpenMP. Elle peut être activée avec le nouveau commutateur CL -openmp:experimental. Ainsi, les boucles annotées avec « #pragma omp simd » peuvent potentiellement être vectorisées. La vectorisation n’est pas garantie, et les boucles annotées mais non vectorisées généreront un avertissement. Si aucune clause SIMD n’est prise en charge, elles seront simplement ignorées et un avertissement sera signalé.
  • Nous avons ajouté un nouveau commutateur de ligne de commande d’incorporation (inlining) -Ob3, qui est une version plus agressive d’-Ob2. -O2 (optimiser la vitesse du fichier binaire) implique toujours -Ob2 par défaut ; si vous constatez que le compilateur fournit une sous-incorporation, vous pouvez ignorer -O2 -Ob3.
  • Pour prendre en charge la vectorisation manuelle des boucles contenant des appels de fonctions de bibliothèque mathématique et certaines autres opérations telles que la division d’entiers, nous avons ajouté la prise en charge des fonctions intrinsèques SVML (Short Vector Math Library) qui calculent les vecteurs équivalents 128 bits, 256 bits ou 512 bits. Pour obtenir les définitions des fonctions prises en charge, consultez le Guide des intrinsèques Intel.
  • Optimisations nouvelles et améliorées :
    • Simplifications arithmétiques et de pliage de constante pour les expressions à l’aide d’intrinsèques SIMD (vecteur), pour les formes float et integer
    • Analyse plus puissante pour extraire des informations de flux de contrôle (instructions if/else/switch) afin de supprimer les branches toujours prouvées comme étant true ou false
    • Amélioration du déroulement de memset de façon à utiliser les instructions de vecteur SSE2
    • Amélioration de la suppression des copies de struct/classes inutiles, en particulier pour les programmes C++ qui transmettent par valeur
    • Amélioration de l’optimisation du code à l’aide de memmove, par exemple pour les constructions std::copy ou std::vector et std::string
Dépréciations
  • Le modèle de projet de test C++ managé n’est plus disponible. Vous pouvez continuer à utiliser le framework de test C++ managé dans vos projets existants mais, pour les nouveaux tests unitaires, utilisez l’un des frameworks de test natifs pour lesquels Visual Studio fournit des modèles (MSTest, Google Test) ou le modèle de projet de test C# managé.
  • Le SDK Windows 8.1 n’est plus disponible dans le programme d’installation de Visual Studio. Mettez à niveau vos projets C++ vers la dernière version du SDK Windows 10. Si vous avez une dépendance dure envers la version 8.1, vous pouvez la télécharger à partir de l’archive de SDK Windows.
  • Le ciblage de Windows XP ne sera plus disponible pour le dernier ensemble d’outils C++. Le ciblage de XP à l’aide de bibliothèques et du compilateur MSVC de niveau Visual Studio 2017 est toujours pris en charge et peut être installé par le biais de « Composants individuels ».
  • Notre documentation décourage activement l’utilisation de Fusionner les modules pour le déploiement Visual C++ Runtime. Dans cette version, nous allons encore un peu plus loin en marquant nos MSM comme dépréciés. Envisagez la migration de votre déploiement central VCRuntime des MSM vers le package redistribuable.
  • Les assistants ATL/MFC C++ suivants ne sont plus disponibles : Assistant Composant ATL COM+ 1.0, Assistant Composant ASP ATL, Assistant Fournisseur OLEDB ATL, Assistant Page de propriétés ATL, Assistant Consommateur OLEDB ATL, Consommateur ODBC MFC, classe MFC du contrôle ActiveX et classe MFC de la bibliothèque de types. Les exemples de code pour ces technologies sont archivés dans le dépôt GitHub VCSamples.

F#

Les améliorations apportées à F# dans Visual Studio 2019 concernent trois domaines majeurs :

  • F# 4.6
  • Améliorations de performances majeures pour les solutions de tailles moyenne et élevée
  • Notre excellente communauté open source a fourni un travail considérable
F# 4.6

Cette version comprend le langage F# 4.6 :

Améliorations apportées au compilateur F# et à FSharp.Core

Le compilateur F# et FSharp.Core ont bénéficié de nombreuses améliorations, notamment de la part des contributeurs open source :

  • Désormais, fsi.exe et fsc.exe utilisent par défaut .NET Framework 4.7.2, ce qui permet le chargement de composants ciblant ce framework ou une version antérieure de celui-ci (#4946).
  • Nous avons optimisé les méthodes exécutées sur les struct et les enregistrements struct, ainsi que celles exécutées sur les classes et les enregistrements de classe (#3057).
  • Nous avons optimisé le langage intermédiaire (IL) émis pour combiner la logique booléenne dans le code F# (#635).
  • Nous avons optimisé l’utilisation de + avec des chaînes en F# pour effectuer le minimum d’appels String.Concat possible (#5560).
  • Nous avons résolu un problème dans le package FSharp.Core où certains répertoires supplémentaires contenant des ressources de test était inclus. FSharp.Core 4.5.5 et 4.6.1 doit disposer du correctif (#5814).
  • Quand un attribut défini par l’utilisateur n’est pas hérité de la classe Attribute, un nouvel avertissement vous le signale, par Vasily Kirichenko.
  • La valeur AssemblyInformationVersionAttribute dans un fichier projet peut maintenant être définie à une valeur arbitraire pour permettre les scénarios comme SourceLink (#4822).
  • Un bogue qui provoquait une erreur interne du compilateur en présence d’une syntaxe non conforme dans les modèles actifs a été résolu par Steffen Forkmann (#5745).
  • Un bogue qui ajoutait à tort le suffixe Module à un module dans un module récursif pour correspondre à un type où la seule différence était un paramètre générique a été résolu par BooksBaum (#5794).
  • Alan Ball a amélioré le message d’erreur qui s’affiche quand les paramètres de type ne sont pas placés à côté d’un nom de type (#4183).
  • Le suffixe littéral uint16 est maintenant correctement répertorié dans les messages d’erreur pour les littéraux numériques non valides. Ce changement a été effectué par Teo Tsirpanis (#5712).
  • Les messages d’erreur pour les expressions de calcul indiquent maintenant « expressions de calcul » à la place de async. Ce changement a été effectué par John Wostenberg (#5343).
  • Un message d’erreur qui s’affiche quand des .dllsont incorrectement référencées dans F# Interactive a été corrigé par Bartoz Sypytkowski (#5416).
  • Un bogue selon lequel les paramètres de type résolus statiquement ne pouvaient pas gérer l’appel d’un membre masquant un membre hérité a été corrigé par Victor Peter Rouven Müller (#5531).
  • Plusieurs petites améliorations des performances ont été apportées au compilateur par Steffen Forkmann et Robert Jeppesen.
Amélioration des performances F#

Les performances des moyennes et grandes solutions dans Visual Studio 2019 ont également bénéficié d’améliorations. Nous avons résolu des problèmes très anciens, certains remontant à la toute première édition des outils F# pour Visual Studio. Nous avons également obtenu de l’aide de la part de l’excellente communauté open source F#.

  • Nous avons réorganisé la manière dont le service de langage F# est initialisé par Roslyn. La coloration de type pour les solutions volumineuses doit en général apparaître plus tôt.
  • Nous avons changé notre représentation du texte source pour éviter les allocations importantes au fil du temps, surtout avec les fichiers plus volumineux (#5935, #5936, #5937, #4881).
  • Nous avons changé nos caches de build pour les petites modifications apportées aux fichiers afin d’utiliser beaucoup moins de mémoire (#6028).
  • Nous avons modifié une fonctionnalité du compilateur qui suggère des noms quand des jetons non reconnus sont typés, afin de calculer ces suggestions uniquement à la demande, ce qui entraîne des réductions importantes de l’utilisation du processeur et de la mémoire quand vous tapez lentement dans des solutions de grande taille (#6044).
  • Nous avons modifié IntelliSense pour qu’il n’affiche plus les symboles des espaces de noms non ouverts par défaut. Cela améliore notamment les performances d’IntelliSense dans les projets contenant de nombreuses références. Vous pouvez réactiver cette fonctionnalité dans les paramètres via Outils > Options > Éditeur de texte > F# > IntelliSense.
  • Nous avons optimisé l’utilisation de la mémoire quand des fournisseurs de types sont utilisés pour générer de très grandes quantités de types fournis dans une liste de saisie semi-automatique (#5599).
  • Une réduction de l’utilisation du processeur et de la mémoire à un algorithme de comparaison de chaîne interne pour suggérer des noms non reconnus a été résolue par Avi Avni (#6050).
  • Une source notable d’allocations de chaîne de grande taille, en particulier pour les outils de l’IDE, a été corrigée par Avi Avni (#5922).
  • Une source notable d’allocation de tas des objets volumineux provenant du calcul IntelliSense a été résolue par Chet balle (#6084)
Améliorations des outils F#

Outre les améliorations de performances, diverses améliorations ont été apportées aux outils F# pour Visual Studio 2019 :

  • Le correctif de code d’ajout de l’instruction open ajoute maintenant par défaut l’instruction open en haut du fichier.
  • Nous avons corrigé un bogue où la présence de match! dans le code utilisateur invalidait les repères de la structure et les nœuds du plan du code dans les étendues suivantes (#5456).
  • L’éditeur applique maintenant aux valeurs byref, outref et ref la couleur appropriée pour les champs d’enregistrement selon la colorisation des valeurs mutables (#5579).
  • Nous avons corrigé un bogue qui empêchait la refactorisation lors d’un changement de nom de reconnaître le caractère ' dans les noms de symboles (#5604).
  • Nous avons corrigé un bogue de longue date qui faisait que le renommage des fichiers de script F# entraînait une perte de données de coloration (#1944).
  • Nous avons nettoyé IntelliSense afin qu’il n’affiche pas les éléments non liés dans la liste quand vous appuyez sur la touche Retour arrière.
  • Quand la mise en retrait « intelligente » est activée, le code F# collé dans l’éditeur est maintenant remis en forme en fonction de l’étendue appropriée déterminée par la position actuelle du curseur. Ce changement a été implémenté par Saul Rennison (#4702).
  • Un problème où les options de l’éditeur F# ne se synchronisaient pas a été résolu par Jakob Majocha (#5997, #5998).
  • Un bogue où IntelliSense dans un constructeur dans une clause inherit n’affichait pas le constructeur principal a été résolu par Eugene Auduchinok (#3699)
  • Plusieurs améliorations mineures au service de langage F# ont été apportées par Eugene Auduchinok.
Infrastructure open source F#

Nous avons terminé la migration de la base de code F# et des outils F# de façon à utiliser le SDK .NET. Cela simplifie considérablement le processus de contribution pour les développeurs, en particulier s’ils n’utilisent pas Windows. De plus, Jakob Majocha nous a aidés à nettoyer les documents pour les nouveaux contributeurs suite aux modifications apportées à la base de code.

Python

Nous avons pris en compte les commentaires des clients et avons largement amélioré la gestion des environnements Python dans Visual Studio 2019 :

  • Nous avons ajouté une nouvelle boîte de dialogue Ajouter un environnement qui simplifie la création et l’ajout d’environnements virtuels et conda dans votre projet.
  • Le programme d’installation de Visual Studio n’installe plus les versions complètes d’Anaconda pour réduire la taille des installations de Visual Studio et éviter les erreurs potentielles pendant les mises à niveau.
  • Miniconda est fourni avec la charge de travail Python en tant que composant facultatif, ce qui vous permet de créer des environnements conda sans avoir à installer Miniconda/Anaconda.
  • Vous serez désormais automatiquement invité à ajouter un environnement si un fichier requirements.txt (environnement virtuel) ou un fichier environment.yml (environnement conda) est présent à la racine de votre projet.
  • Une nouvelle barre d’outils Environnements Python est disponible lors de la modification des fichiers Python. Cette nouvelle barre d’outils vous permet de basculer entre différents interpréteurs Python quand vous travaillez avec des projets, des espaces de travail Ouvrir un dossier ou des fichiers Python libres dans d’autres projets.
  • Des améliorations ont été apportées à la qualité de la saisie semi-automatique dans Python IntelliSense, notamment concernant la détection des importations relatives et d’espaces de noms.
  • Les modèles de projet Django ont été mis à jour pour prendre en charge Django 2.x.
  • Les valeurs de retour de fonction sont maintenant affichées dans le débogueur Python.
  • Vous pouvez désormais créer des sessions Visual Studio Live Share et collaborer sur du code Python avec d’autres utilisateurs de Visual Studio. Auparavant, Python était uniquement pris en charge quand vous rejoigniez des sessions créées à partir de Visual Studio Code.

JavaScript/TypeScript

  • Nous avons ajouté la prise en charge de l’activation du débogage JavaScript dans les tests unitaires dans les projets Node.js. Cette fonctionnalité était très demandée par nos clients Node.js.
  • Le service de langage JavaScript/TypeScript sera désormais chargé automatiquement dans les projets où le package NuGet TypeScript ou le package npm est installé (TypeScript 3.2 et versions ultérieures est pris en charge à partir du package NuGet, et TypeScript 2.1 et versions ultérieures est pris en charge à partir du package npm).
  • Nous avons implémenté des améliorations de performances dans le service de langage suite à l’augmentation de la limite de mémoire sur le service de langage, afin de gérer les projets volumineux.
  • Nous n’affichons plus les diagnostics des fichiers JavaScript/TypeScript fermés dans la liste d’erreurs par défaut.
  • Le service de langage JavaScript hérité n’est plus disponible. Les utilisateurs avaient auparavant la possibilité de restaurer ce service de langage. Ils disposent maintenant d’un nouveau service de langage JavaScript intégré. Ce nouveau service de langage est basé sur le service de langage TypeScript, qui repose sur l’analyse statique. Cela améliore les performances des outils, et votre code JavaScript bénéficie de fonctionnalités IntelliSense plus riches, basées sur l’acquisition des définitions de type. Le nouveau service est léger et consomme moins de mémoire que le service hérité, offrant ainsi aux utilisateurs de meilleures performances quand leur code grossit.

Team Explorer et Azure DevOps

Nous avons apporté des améliorations à l’expérience liée aux éléments de travail Git avec Azure DevOps.

  • Affectez des éléments de travail à vous-même ou à d’autres personnes avec le sélecteur d’identité. Par défaut, vous verrez une liste des personnes que vous avez récemment utilisées. Vous pouvez aussi utiliser la fonctionnalité de recherche pour rechercher d’autres membres dans votre organisation.
  • Nous avons amélioré l’expérience #mentions dans le message de validation. Quand vous sélectionnez un élément de travail dans le sélecteur #mention, il est ajouté automatiquement à la liste Éléments de travail associés.
Assignation d’éléments de travail et améliorations de #mention
Assignation d’éléments de travail et améliorations de #mention

Mise en surbrillance des chemins chauds

  • Nous avons ajouté la prise en charge de la mise en surbrillance des chemins réactifs dans les outils Utilisation de l’UC et Allocation d’objets .NET dans le Profileur de performances. Sélectionnez n’importe quelle fonction dans l’arborescence des appels et appuyez sur le bouton Chemin réactif pour développer le chemin réactif Utilisation de l’UC et Allocation d’objets .NET. Cette fonctionnalité vous permet d’identifier facilement les appels de fonction qui utilisent le pourcentage d’UC le plus élevé ou qui allouent le plus d’objets.
Mise en surbrillance des chemins réactifs dans l’outil Utilisation de l’UC
Mise en surbrillance des chemins réactifs dans l’outil Utilisation de l’UC

Outils .NET et ASP.NET

  • Nous avons implémenté diverses petites améliorations de l’expérience utilisateur dans la page de synthèse de profil de publication (nouveaux en-têtes de section et actions/raccourcis) pour toutes les applications.
  • Quand vous publiez des applications ASP.NET sur Azure App Service, la page de synthèse de profil de publication a maintenant une nouvelle section nommée « Dépendances ». Cette nouvelle section vous permet actuellement d’associer des ressources Stockage Azure et SQL Azure à votre instance de service d’application. D’autres services Azure seront normalement exposés par le biais de ce mécanisme à l’avenir.
  • Utilisez des métriques de code avec les projets .NET Core pour bénéficier d’une meilleure compatibilité.
  • Exportez les paramètres de l’éditeur dans un fichier Editorconfig en utilisant le bouton « Générer le fichier .editorconfig à partir des paramètres », accessible via Outils > Options > Éditeur de texte > C# > Style de code.
  • Utilisez le nouvel analyseur Regex de Visual Basic et C#. Les expressions régulières sont maintenant reconnues, et vous pouvez utiliser les fonctionnalités de langage sur ces expressions. Les chaînes d’expression régulière sont reconnues quand une chaîne est passée au constructeur Regex ou quand une chaîne est immédiatement précédée d’un commentaire contenant la chaîne language=regex. Cette version comporte les fonctionnalités de langage suivantes : la classification, la correspondance d’accolade, la mise en surbrillance des références et les diagnostics.
Expressions régulières désormais prises en charge par l’analyseur
Prise en charge de l’analyseur d’expression régulière
  • Vous pouvez maintenant utiliser l’analyse du code mort pour les membres privés inutilisés avec un correctif de code facultatif qui supprime la déclaration de ces membres.
  • La fonctionnalité Rechercher des références utilisée sur un accesseur retourne maintenant uniquement les résultats pour cet accesseur.
  • Nous avons ajouté un correctif de code permettant la génération d’une méthode de déconstruction.
  • Vous pouvez ajouter des instructions « using » à du code collé dans un fichier. Un correctif de code apparaît après le collage de code reconnu pour vous inviter à ajouter les instructions import manquantes.
  • Davantage d’actions de refactorisation et d’actions rapides sont maintenant disponibles avec « Ctrl+. » ou « Alt+Entrée » :
    • Dans les cas où « await » est implicite mais omis, un nouvel avertissement du compilateur s’affiche.
    • Pour la conversion d’une fonction locale en méthode.
    • Pour la conversion d’un tuple en struct nommé.
    • Pour la conversion d’un type anonyme en classe.
    • Pour la conversion d’un type anonyme en tuple.
    • Pour une boucle foreach vers une requête LINQ ou une méthode LINQ.
  • Nous avons ajouté la prise en charge des applications ASP .NET Core exécutées dans Azure Kubernetes Service. Pour démarrer, consultez cet exemple docker sur GitHub.
  • ASP.NET est désormais pris en charge dans l’outil Utilisation de l’UC du Profileur de performances.
Outil Utilisation de l’UC dans le Profileur de performances
Outil Utilisation de l’UC dans le Profileur de performances
  • Vous pouvez maintenant utiliser Rechercher toutes les références (Maj+F12) et CodeLens pour afficher les résultats de la recherche dans les fichiers Razor (.cshtml) dans des projets .NET Core. Vous pouvez ensuite accéder au code identifié dans les fichiers Razor correspondants.
  • Nous avons ajouté la prise en charge du ciblage des applications ASP .NET (core et bureau) qui s’exécutent sur des machines virtuelles ou groupes de machines virtuelles identiques Windows.
Interface utilisateur de sélection de la cible du Débogueur de capture instantanée
Interface utilisateur de sélection de la cible du débogueur de capture instantanée
  • Vous recevez désormais un avertissement quand vous effectuez une analyse du code à l’aide de FxCop. L’utilisation des analyseurs du compilateur .NET est maintenant la méthode recommandée pour l’analyse du code. Découvrez comment migrer vers les analyseurs de plateforme du compilateur .NET.
  • Les modèles de projet PCL (bibliothèque de classes portable) ne sont plus disponibles, et la prise en charge de ce type de projet n’est pas installée par défaut. Les nouveaux projets ciblant plusieurs plateformes doivent avoir le type de projet .NET Standard. Les clients ayant besoin de la prise en charge des projets PCL doivent installer le composant séparément à partir de l’onglet Composants individuels dans le programme d’installation de Visual Studio.
  • La commande « Project.CopyWebSite » n’est plus disponible. Cette fonctionnalité était uniquement disponible pour le type de projet « Site web » pour .NET. Elle permettait de synchroniser deux sites web pour qu’ils aient la même version de chaque fichier. Dans Visual Studio 2019, vous pouvez copier les fichiers à partir de la destination distante en dehors de Visual Studio, puis ouvrir le projet.
  • Il n’est plus possible d’ouvrir un projet Site web à partir d’un emplacement FTP distant. Les utilisateurs de FTP peuvent copier les fichiers à partir de la destination distante en dehors de Visual Studio, ouvrir et modifier le projet, puis publier les fichiers pour les renvoyer (push) vers l’emplacement FTP distant.
  • La charge de travail ASP.NET et web n’installe plus un environnement d’édition CoffeeScript personnalisé. Les bundles TextMate de Visual Studio sont plus appropriés pour travailler avec CoffeeScript.
  • Les erreurs CSS et CoffeeScript actuellement générées par les copies intégrées de CSSLint et CoffeeLint ne s’affichent plus automatiquement quand vous modifiez ces fichiers. Utilisez une autre méthode pour exécuter des linters comme npm ou l’Explorateur de l’Exécuteur de tâches de Visual Studio.
  • Visual Studio n’offre plus la fonctionnalité IntelliSense pour les attributs HTML de Knockout. Dans Visual Studio 2019, vous devez taper ces attributs.
  • Il n’est plus possible d’utiliser le débogueur Chrome hérité dans les projets ASP.NET pour le débogage de JavaScript. Vous pouvez continuer à utiliser le débogueur Chrome actuel qui est intégré à Visual Studio.
  • La possibilité d’utiliser les fonctionnalités de la console JavaScript dans les projets ASP.NET a été supprimée. Nous recommandons aux clients d’utiliser la console de leurs outils de développement de navigateur favoris.

Outils de conteneur

  • Nous avons ajouté une expérience de projet unique simplifiée pour la mise en conteneur et le débogage :
    • Applications web ASP.NET (.NET Framework)
    • Applications console (.NET Core)
  • Nous avons ajouté la prise en charge du débogage des applications ASP.NET Core qui utilisent Alpine comme image de base.
  • Nous avons ajouté la prise en charge des images ASP.NET et .NET Core les plus récentes.

Outils .NET Core

.NET Core 3.0

Avec cette version, vous pouvez créer des projets ASP.NET Core, Console et Bibliothèque de classes ciblant .NET Core 3.0, à condition d’avoir installé le SDK en préversion.

Si vous utilisez Visual Studio RC, vous devez également accéder à Outils > Options > Projets et solutions > .NET Core et cocher la case Utiliser les préversions des SDK .NET Core. Si vous utilisez Visual Studio Preview, cette étape ne vous concerne pas. Pour en savoir plus sur ce paramètre et son comportement, consultez le billet de blog .NET Core tooling update for Visual Studio 2017 version 15.9.

Vous pouvez aussi créer des Windows Forms ou des projets WPF pour .NET Core 3.0 à l’aide de la commande « dotnet new ». Ces projets peuvent ensuite être ouverts dans Visual Studio 2019.

Nouvelles fonctionnalités

À compter de cette version, nous faisons des fichiers projet pour les projets de style SDK .NET un type de fichier de première classe dans Visual Studio. Les opérations suivantes sont maintenant prises en charge :

  • Double-cliquez sur un nœud de projet pour ouvrir le fichier projet
  • Cliquez sur le nœud du projet pour ouvrir le fichier projet sous un onglet Aperçu
  • Recherchez un fichier projet par nom avec Atteindre tout (ctrl + T)
  • Vous pouvez désormais effectuer des recherches dans les éléments MSBuild d’un fichier projet avec l’option Rechercher dans les fichiers
  • Ouverture à partir de la liste d’erreurs si une erreur de création de projet est déclenchée

En outre, les projets de style SDK .NET utilisent désormais la nouvelle expérience Console intégrée pour F5 et ctrl + F5 sur les applications console. Cela unifie l’expérience lors du lancement des applications console à partir de Visual Studio :

  • Pour F5, la fenêtre de console ne se ferme pas automatiquement quand l’application a fini de s’exécuter. Vous n’avez plus besoin d’ajouter des appels Console.Read() à vos applications console.
  • Pour ctrl + F5, la fenêtre de console est réutilisée lors des exécutions ultérieures de votre application. Vous n’avez plus besoin de fermer de nombreuses fenêtres de console.

Vous pouvez fermer automatiquement la nouvelle fenêtre de console en appuyant sur une touche quand elle est ouverte ou en sélectionnant l’option sous Outils > Options > Fermer automatiquement la console à l’arrêt du débogage.

La prise en charge des expressions de licence et des fichiers de licence a été ajoutée aux pages de propriétés de projet. Cela va de paire avec les changements visant à déprécier licenseUrl dans NuGet.

Améliorations des performances
  • La scalabilité des solutions de grande taille a été considérablement améliorée, autorisant l’utilisation de solutions .NET Core beaucoup plus grandes qu’auparavant.
  • Les temps de chargement des solutions pour les grands projets ont considérablement diminué, tout comme l’utilisation du processeur et de la mémoire lors de leur chargement.
Parité des fonctionnalités avec les projets autres que .NET Core

Une liste complète des problèmes et demandes de tirage (pull requests) est disponible dans les jalons 16.0, 16.0 Preview 2, 16.0 Preview 3 et 16.0 Preview 4.

Productivité .NET

  • Correctifs de code et refactorisations .NET :

    • Synchronisation de l’espace de noms et du nom du dossier
    • Extraction des membres de la refactorisation avec des options de boîte de dialogue
    Extraction des membres de la refactorisation avec des options de boîte de dialogue
    Boîte de dialogue d’extraction de membres
    • Retour à la ligne/retrait/alignement des listes de paramètres/arguments
    • Conversion de type anonyme en tuple
    • Utilisation d’un corps de bloc/expression pour lambda
    • Inversion des expressions conditionnelles et des opérations logiques
    • Fermeture automatique du bloc de commentaire avec « / »
    • Conversion d’assignation composée
    • Correction du problème selon lequel les variables implicitement typées ne pouvaient pas être constant
    • Correcteur automatique pour remplacer @$" par $@" lors de la saisie de chaîne textuelle interpolée
    • Complétion pour #nullable enable|disable
    • Correctif pour les paramètres et valeurs d’expression non utilisés
    • Correctif afin d’autoriser Extraire l’interface à rester dans le même fichier
  • Catégorisation des références par Lecture/Écriture.

  • Ajout de l’option Editorconfig when_multiline pour csharp_prefer_braces.

  • De nouvelles couleurs de classification sont disponibles dans le SDK .NET Compiler Platform (également appelé Roslyn). De nouvelles couleurs par défaut, semblables aux couleurs Visual Studio Code, sont progressivement déployées. Vous pouvez ajuster ces couleurs dans Outils > Options > Environnement > Polices et couleurs ou les désactiver dans Environnement > Fonctionnalités en préversion en décochant la case Utiliser les couleurs améliorées. N’hésitez pas à nous écrire pour nous dire comment ce changement affecte votre flux de travail.

Nouvelles couleurs de classification Roslyn
Nouvelles couleurs de classification Roslyn

Débogage de JavaScript dans les projets ASP.NET

  • Si vous avez ajouté un nouveau navigateur Google Chrome avec des arguments personnalisés à l’aide du menu « Naviguer avec... » pour votre projet ASP.NET, Visual Studio activera maintenant le débogage JavaScript pour votre application lors du démarrage du débogage. Vos arguments de lancement personnalisés pour Google Chrome seront appliqués lors du lancement de Chrome.
Ajout de Google Chrome avec des arguments personnalisés à l’aide de « Naviguer avec »
Ajout de Google Chrome avec des arguments personnalisés à l’aide de « Naviguer avec... »
Remarque : par défaut, Visual Studio lance Chrome en utilisant un répertoire de données différent de votre instance de Chrome ordinaire, sauf si vous fournissez le chemin de votre répertoire de données en tant qu’argument. Par conséquent, si vous avez besoin que des extensions soient disponibles à l’aide de cette instance de Chrome, vous devrez les installer la première fois.

Outils ASP.NET et Azure Functions

  • Visual Studio 2019 est fourni avec une nouvelle expérience de création de projets. Lors de la création de projets ASP.NET spécifiquement, Visual Studio propose des boîtes de dialogue supplémentaires qui révèlent les choix spécifiques à ASP.NET. Ces boîtes de dialogue supplémentaires ont été mis à jour pour correspondre au style visuel du reste de l’expérience.
  • Depuis un certain temps maintenant, les informations d’identification de publication dans Visual Studio sont chiffrées et stockées dans le fichier utilisateur du profil de publication afin que vous n’ayez pas à les entrer de nouveau chaque fois que vous publiez votre application. En général, les fichiers utilisateur sont exclus par défaut du contrôle de code source, car ils sont susceptibles de contenir des informations secrètes et/ou personnelles qui ne doivent pas être partagées. Jusqu’à présent, si un profil de publication pour un projet Azure Functions était archivé dans le contrôle de code source, mais que le fichier utilisateur ne l’était pas, les informations d’identification de publication étaient manquantes et le profil de publication ne pouvait pas être réutilisé. Maintenant, nous autorisons que les informations d’identification soient modifiées et qu’un nouveau fichier utilisateur soit créé afin que le profil de publication puisse être réutilisé.

Assistant Performance

Dans Visual Studio 2019, les expériences de profilage qui étaient disponibles dans l’Assistant Performance ont été déplacées vers le Profileur de performances. L’outil Utilisation de l’UC pour l’échantillonnage et l’outil Instrumentation pour l’instrumentation se trouvent dans le Profileur de performances. En raison de ce changement, l’Assistant Performance n’est plus nécessaire et a été supprimé dans Visual Studio 2019. En outre, l’option d’échantillonnage a été supprimée dans les outils en ligne de commande d’analyse des performances de Visual Studio. Un autre outil en ligne de commande sera disponible à la place dans une future préversion.

Outils de test

  • Vous pouvez maintenant cliquer avec le bouton droit sur des tests, des classes de test et des projets de test dans l’Explorateur de solutions pour exécuter ou déboguer des tests.
  • À présent, les séries de tests détectent automatiquement l’architecture de processeur définie dans les propriétés du projet.
  • Les outils de test de l’interface utilisateur OSS comme Selenium et Appium sont de plus en plus utilisés et comptent une grande communauté de support. Étant donné que ces frameworks sont devenus des normes dans le secteur, nous avons déprécié le test codé de l’interface utilisateur pour les tests fonctionnels automatisés de l’interface utilisateur. Visual Studio 2019 sera la dernière version de Visual Studio à proposer des fonctionnalités de test codé de l’interface utilisateur. Nous vous recommandons d’utiliser Selenium pour tester des applications web et Appium avec WinAppDriver pour tester des applications de bureau et UWP.
  • Visual Studio 2019 sera la dernière version de Visual Studio à proposer des fonctionnalités de test de charge. Pour les clients qui ont besoin d’outils de test de charge, nous leur recommandons d’utiliser d’autres outils de test de charge comme Apache JMeter, Akamai CloudTest ou Blazemeter.
  • Dans Visual Studio 2019, certaines API de fenêtre de test, qui étaient auparavant dites publiques mais qui n’ont jamais été officiellement documentées, ont été supprimées. Elles avaient été marquées comme déconseillées ou dépréciées dans Visual Studio 2017 pour avertir à l’avance les personnes chargées de la maintenance des extensions. À notre connaissance, très peu d’extensions avaient une dépendance sur ces API. Ces API incluent IGroupByProvider, IGroupByProvider, KeyComparer, ISearchFilter, ISearchFilterToken, ISearchToken et SearchFilterTokenType. Si ce changement impacte votre extension, signalez votre problème sur le site de la Communauté des développeurs.

Outils Kubernetes Visual Studio

Les Outils Kubernetes Visual Studio, qui étaient auparavant disponibles en tant qu’extension distincte pour Visual Studio 2017, sont désormais intégrés à la charge de travail Développement Azure dans Visual Studio 2019.

Ajout de la prise en charge de Kubernetes à un nouveau projet

Pour ajouter la prise en charge de Kubernetes à un nouveau projet, ouvrez Visual Studio et sélectionnez l’option Créer un projet. Dans la fenêtre Créer un projet, recherchez Kubernetes et sélectionnez le modèle de projet Application conteneur pour Kubernetes.

Création d’une application conteneur pour Kubernetes
Création d’une application conteneur pour Kubernetes

Cliquez sur Suivant et entrez un nom de projet, un emplacement et un nom de solution. Ensuite, cliquez sur Créer. Sélectionnez le modèle d’application ASP.NET Core que vous souhaitez utiliser pour votre projet et cliquez sur OK. Visual Studio crée automatiquement un fichier Dockerfile et un graphique Helm que vous pouvez utiliser pour générer et déployer votre nouvelle application sur un cluster Kubernetes. Vous pouvez modifier ces artefacts en fonction des besoins.

Ajout de la prise en charge de Kubernetes à un projet existant

Vous pouvez également ajouter la prise en charge de Kubernetes à une application ASP.NET Core existante. Pour cela, ouvrez le projet dans Visual Studio 2019. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, pointez sur Ajouter, puis cliquez sur Prise en charge d’orchestrateur de conteneurs.

Ajout de la prise en charge d’orchestrateur de conteneurs
Ajout de la prise en charge d’orchestrateur de conteneurs

Dans la boîte de dialogue Ajouter la prise en charge d’orchestrateur de conteneurs, choisissez Kubernetes/Helm et cliquez sur OK. Visual Studio crée automatiquement un fichier Dockerfile et un graphique Helm (dans un dossier nommé charts) que vous pouvez utiliser pour générer et déployer votre application sur un cluster Kubernetes. Si l’un de ces artefacts est déjà en place, il n’est pas remplacé. Vous pouvez modifier ces artefacts en fonction des besoins.

Création d’un point de terminaison accessible publiquement

Quand vous ajoutez la prise en charge de Kubernetes à un projet nouveau ou existant, Visual Studio vous demande si vous souhaitez créer un point de terminaison accessible publiquement pour votre application.

Invite de point de terminaison accessible publiquement
Invite de point de terminaison accessible publiquement

Si vous cliquez sur Oui, Visual Studio configure le graphique Helm pour votre application afin de créer un objet d’entrée Kubernetes quand l’application est déployée sur un cluster Kubernetes. Vous pouvez changer cette option à tout moment en modifiant le graphique Helm.

Débogage de votre application dans Azure Kubernetes Service

Une fois que vous avez ajouté la prise en charge de Kubernetes à un projet nouveau ou existant, vous pouvez facilement générer, exécuter et déboguer votre application dans un cluster AKS (Azure Kubernetes Service) actif, à l’aide d’une fonctionnalité appelée Azure Dev Spaces. Ceci est utile pour tester votre projet dans le contexte d’un cluster Kubernetes réel ou pour déboguer un service qui fait partie d’une application plus grande sans avoir à répliquer toute l’application localement. Azure Dev Spaces propose également une fonctionnalité qui permet à votre équipe de développement de partager un cluster AKS. Pour plus d’informations sur Azure Dev Spaces, consultez la documentation Azure Dev Spaces. Pour commencer, vérifiez qu’Azure Dev Spaces est sélectionné comme cible de lancement de débogage dans Visual Studio.

Sélection d’Azure Dev Spaces comme cible de lancement de débogage
Sélection d’Azure Dev Spaces comme cible de lancement de débogage

Avant de lancer pour la première fois votre projet dans Dev Spaces, configurez l’abonnement Azure et le cluster AKS que vous souhaitez utiliser. Sélectionnez aussi l’espace dans lequel vous souhaitez exécuter le projet.

Configuration d’Azure Dev Spaces
Configuration d’Azure Dev Spaces

En règle générale, votre équipe exécute la dernière version stable de l’application entière dans l’espace par défaut. Ensuite, vous exécutez la version du service sur laquelle vous travaillez dans un espace enfant de l’espace par défaut. Il est désormais inutile d’exécuter les autres services dans l’espace enfant ; Dev Spaces achemine automatiquement les appels de votre service vers les versions stables des services en cours d’exécution dans l’espace par défaut. Pour plus d’informations sur la procédure de configuration, consultez les tutoriels sur le développement en équipe dans la documentation Azure Dev Spaces. Une fois que vous avez sélectionné l’abonnement, le cluster et l’espace appropriés, cliquez sur OK pour passer à la configuration de Dev Spaces. Si vous sélectionnez un cluster qui n’est encore associé à aucun contrôleur Dev Spaces, cliquez sur OK dans la boîte de dialogue suivante pour en créer un automatiquement.

Boîte de dialogue Activer Dev Spaces
Boîte de dialogue Activer Dev Spaces

La création du contrôleur prend environ deux minutes. Vous pouvez cliquer sur le bouton Tâches en arrière-plan dans le coin inférieur gauche de la fenêtre Visual Studio pour afficher l’état.

État de la création du contrôleur Azure Dev Spaces par le biais de Tâches en arrière-plan
État de la création du contrôleur Azure Dev Spaces par le biais de Tâches en arrière-plan

Une fois que vous avez un contrôleur Dev Spaces prêt à l’emploi, appuyez sur F5 ou cliquez sur le bouton de débogage Azure Dev Spaces dans la barre d’outils pour déboguer votre projet dans AKS.

Bouton de débogage Azure Dev Spaces
Bouton de débogage Azure Dev Spaces

Dev Spaces synchronisera votre code vers Azure, générera une image conteneur qui contient votre code, et la déploiera sur votre cluster AKS à l’aide du graphique Helm défini dans votre projet. Visual Studio ouvrira une connexion de débogage à distance avec le service en cours d’exécution dans le cluster afin que vous puissiez interagir avec lui comme vous le feriez lors du débogage d’un service s’exécutant localement.

Développement mobile avec Xamarin

Cette version inclut des améliorations apportées à la taille de la charge de travail, aux performances et à la fiabilité des build Android, et à la productivité dans Xamarin.Android et Xamarin.Forms.

  • La charge de travail Xamarin est désormais de 7,69 Go seulement. Elle a donc été divisée par deux par rapport à Visual Studio 2017 version 15.9 et par trois par rapport à la version 15.7.
  • L’extension IntelliCode prend désormais en charge XAML dans Xamarin.Forms.
Fichier > Nouveau projet

Nous avons apporté des améliorations de performances visant à réduire la durée nécessaire pour créer un projet Xamarin, afin que vous puissiez commencer à créer vos applications plus rapidement. Nous incluons maintenant les packages NuGet utilisés par les modèles dans le cadre de l’installation de la charge de travail, afin de réduire la durée de restauration de package, en particulier dans les scénarios hors connexion ou à faible bande passante. Ces améliorations réduisent dans certains cas de près de 50 % la durée nécessaire pour charger et restaurer entièrement un nouveau projet Xamarin.

Nouvelle image gif de comparaison de projet Xamarin
Création d’un projet Xamarin dans Visual Studio version 15.9 (à gauche) et Visual Studio 2019 (à droite)
Indicateur de progression de la build

Vous pouvez maintenant voir des informations plus détaillées sur la progression de la génération lors de la génération de vos projets. Cliquez sur l’icône de tâches en arrière-plan dans le coin inférieur gauche pendant une génération pour afficher la cible de génération en cours d’exécution. Cela peut être utile pour déterminer si la génération est toujours en cours d’exécution mais qu’une cible nécessite beaucoup de temps.

Indicateur de progression de génération Xamarin
Indicateur de progression de génération Xamarin
Mode Aperçu de base du Générateur d’aperçu Xamarin.Forms

Vous n’êtes plus obligé de générer votre projet pour que le Générateur d’aperçu XAML Xamarin.Forms vous montre un aperçu de votre code ! Si vous avez des contrôles personnalisés dans votre fichier XAML, vous devrez peut-être générer votre projet pour en afficher un aperçu, ou opter pour leur rendu au moment du design.

Menu déroulant de l’appareil du Générateur d’aperçu Xamarin.Forms

Vous pouvez désormais permuter entre différents appareils Android et iOS pour afficher un aperçu de votre XAML Xamarin.Forms grâce à notre nouveau menu déroulant d’appareil.

Menu déroulant d’appareil Xamarin.Forms
Menu déroulant d’appareil Xamarin.Forms
Panneau de propriétés Xamarin.Forms

Vous pouvez maintenant modifier les attributs les plus courants des contrôles, cellules et dispositions Xamarin.Forms dans un panneau de propriétés et voir immédiatement ces modifications répercutées dans votre code XAML.

Panneau de propriétés de Xamarin.Forms
Panneau de propriétés de Xamarin.Forms
Modèle de shell Xamarin.Forms

Nous avons mis à jour les modèles Xamarin.Forms pour utiliser la dernière version de Xamarin.Forms, et également ajouté une nouvelle option de modèle pour une application Shell Xamarin.Forms. Shell vise à réduire la complexité des applications tout en augmentant la productivité des développeurs, et est axé sur la vitesse de rendu et la consommation de mémoire. Ce modèle vous donne une application Shell amorcée pour Android et iOS.

Performances et fiabilité des builds Android

Dans Visual Studio 2017 version 15.9 et Visual Studio pour Mac 7.7, nous avons apporté des améliorations sur les performances des builds initiales et l’exactitude des builds. Dans Visual Studio 2019 et Visual Studio pour Mac 7.8, la génération et le déploiement de builds sont encore plus rapides qu’avant.

Performances des builds Android
*Générer une build Android n’a jamais été aussi rapide*
  • Vous allez maintenant utiliser la nouvelle génération d’outils de packaging Android. Pour activer cette fonctionnalité, ajoutez un indicateur MSBuild dans le .csproj de votre projet :
    • aapt2 divise la mise en package Android en deux étapes : Compiler et Lier. Cela améliore les performances des builds incrémentielles et fournit des rapports sur les erreurs antérieures. Par exemple, si vous faites des modifications dans un seul fichier, vous n’avez que ce fichier à recompiler. <AndroidUseAapt2>True</AndroidUseAapt2>
  • En activant cet outil dans vos projets, vous améliorez les performances au moment de la génération et de l’exécution. Pour plus d’informations sur ces propriétés, consultez notre documentation sur le processus de génération dans Xamarin.Android.
Améliorations de l’émulateur Android

Dans Visual Studio 2019, les images de l’émulateur Android sont plus faciles à créer. Nous avons également continué à collaborer avec l’équipe Windows dans la mise à jour d’octobre 2018 de Windows 10, version 1809, pour améliorer les performances de l’émulateur Android exécuté sur Hyper-V.

  • Les nouveaux utilisateurs peuvent créer leur première image simplement en appuyant sur l’icône d’exécution.
  • L’expérience d’acquisition de l’émulateur détermine automatiquement la meilleure configuration pour votre installation et tire parti de l’accélération matérielle (avec Intel HAXM ou Hyper-V) et du démarrage rapide par défaut.
  • Quand vous voulez créer une autre image, vous sélectionnez Créer un émulateur Android dans la liste déroulante pour ouvrir Android Device Manager.
Réduisez la durée des builds grâce à nos améliorations des builds dans Xamarin.Android

Nous avons publié un ensemble d’améliorations des performances de génération initiales. À ce jour, Xamarin.Android 9.1.1+ offre de nettes améliorations de performances par rapport à la version précédente. Pour plus d’informations, consultez Comparaison des performances de build entre Xamarin.Android 15.9 et 16.0.

Déploiement rapide amélioré pour Xamarin.Android

Le déploiement rapide a jusqu’à aujourd’hui fourni des durées de déploiement incrémentiel plus courtes en ignorant la reconstruction ou le redéploiement du package Android (fichier .apk) dans les scénarios où aucune modification n’a été apportée à des actifs, ressources, bibliothèques natives partagées empaquetées dans l’application ou classes définies par l’utilisateur qui héritent de Java.Lang.Object. Le déploiement rapide amélioré étend la prise en charge du déploiement rapide afin de couvrir à la fois les bibliothèques natives partagées et les classes qui héritent de Java.Lang.Object. Les builds de déploiement rapide qui utilisent ces nouvelles améliorations doivent générer un nouveau fichier .apk dans un nombre limité de scénarios, par exemple quand le fichier AndroidManifest.xml change en raison de l’ajout d’une nouvelle sous-classe Android.App.Application ou Activity. Ces améliorations ne sont pas encore activées par défaut dans la préversion actuelle. Pour les activer, affectez la valeur Assemblies:Dexes à la propriété MSBuild $(AndroidFastDeploymentType) dans votre fichier .csproj :

<PropertyGroup> 
  <AndroidFastDeploymentType>Assemblies:Dexes</AndroidFastDeploymentType> 
</PropertyGroup>
Prise en charge du compilateur dex (d8) et du réducteur de code (r8) nouvelle génération dans Xamarin.Android

Xamarin.Android prend désormais en charge la dernière version du réducteur de code (r8) et du compilateur dex Android (d8). Pour activer ces fonctionnalités, affectez respectivement les valeurs d8 et r8 aux propriétés MSBuild $(AndroidDexTool) et $(AndroidLinkTool) dans votre fichier .csproj

  • d8 est un compilateur dex de nouvelle génération qui s’exécute plus rapidement et génère des fichiers .dex plus petits avec de meilleures performances d’exécution.
<PropertyGroup> 
  <AndroidDexTool>d8</AndroidDexTool>
</PropertyGroup>
  • r8 est un nouvel outil de réduction et de minimisation qui convertit le code d’octet Java en code dex optimisé, ce qui rend l’utilisation de ProGuard inutile.
<PropertyGroup> 
  <AndroidLinkTool>r8</AndroidLinkTool>
</PropertyGroup>

Pour plus d’informations sur d8 et r8, consultez notre documentation.

Améliorations apportées de Xamarin.Android Designer

Nous avons apporté de nombreuses améliorations de productivité pour les interactions en mode Fractionné.

  • Faites glisser et déposer les éléments de la boîte à outils directement dans l’éditeur de code source pour structurer plus rapidement vos dispositions Android.
Boîte à outils vers l’éditeur de source (Android Designer)
  • Sélectionnez les éléments directement à partir de l’étendue de leur définition XML dans l’éditeur de code source. Nous avons implémenté cela en synchronisant la position du signe insertion avec la vue Android correspondante, ce qui vous permet d’accéder rapidement aux propriétés d’un élément dans le panneau de propriétés directement à partir de l’éditeur.
Éditeur de source vers l’éditeur de propriétés (Android Designer)
  • Affichez un aperçu intraligne des couleurs dans votre code XML afin de voir les couleurs utilisées dans vos contrôles.
Aperçu des couleurs (Android Designer)
  • Utilisez notre fonctionnalité Info express en pointant sur une valeur pour afficher des informations supplémentaires, par exemple, l’emplacement où elle est définie ou la valeur hexadécimale associée à la couleur.
Informations rapides (Android Designer)
*Info express en action*
Améliorations du concepteur Xamarin.Android avec prise en charge initiale des dispositions de contraintes

Nous nous sommes donné comme mission d’améliorer la vitesse de démarrage d’Android Designer. Dans le cadre de cet effort, nous avons également amélioré les messages fournis par le concepteur pendant son chargement.

Sortie Android Designer

Outre ces améliorations, Android Designer assure désormais la prise en charge en mode natif d’Android Pie (9.0) et fournit la complétion automatique pour les attributs ConstraintLayout.

Bénéficiez de meilleures optimisations des commentaires et d’IntelliSense pour XML avec Xamarin.Android Designer

Quand vous utilisez IntelliSense pour ajouter un widget à une disposition, une expérience complète d’extrait de code est désormais disponible afin que les attributs requis puissent être fournis dès le début. Nous avons ajouté l’ajout intelligent de marques de commentaires et l’annulation intelligente des marques de commentaires pour les dispositions XML Android.

Augmentez votre productivité en utilisant Atteindre la définition et utilisez IntelliSense XML dans les fichiers de ressources Android et dans AndroidManifest.xml

Vous pouvez désormais utiliser Ctrl + clic sur les URL de ressources pour accéder à la ligne ou au fichier où elles sont définies.

Atteindre la définition (Android Designer)

IntelliSense et l’autocomplétion sont maintenant pris en charge pour des fichiers XML Android autres que les dispositions (couleurs, chaînes, ressources Drawable, menu, manifeste Android, etc.).

Plateforme Windows universelle

  • L’extension IntelliCode prend désormais en charge XAML.
  • Pour réduire la taille et la complexité de l’installation de Visual Studio, les émulateurs Windows Phone ont été supprimés de l’installation de Visual Studio. Vous devez maintenant télécharger les émulateurs manuellement.
  • Les outils de conception XAML pour les applications UWP ciblant les SDK Windows 10 SDK antérieurs à Windows 10 Fall Creators Update (build 16299) ont été supprimés. Reciblez vos applications vers Windows 10 version 1709 ou ultérieure pour utiliser le concepteur XAML, ou utilisez l’éditeur XAML.
  • Les projets de test UWP utilisant project.json pour définir les dépendances NuGet ne sont plus pris en charge. Vous devez mettre à niveau ces projets pour utiliser le nouveau format PackageReference.
  • Les applications JavaScript UWP ne sont plus prises en charge dans Visual Studio 2019. Vous ne pouvez donc plus créer ni ouvrir de projets JavaScript UWP (fichiers avec l’extension jsproj). Pour plus d’informations, consultez notre documentation sur la création d’applications web progressives (PWA) qui s’exécutent correctement sur Windows.
  • Vous pouvez continuer à attacher des éléments aux applications JavaScript UWP comme avant, toutefois les outils de profilage JavaScript (réseau, processeur et profileur de mémoire) ne sont plus disponibles dans Visual Studio 2019.

Mises à jour des modèles des outils Office

Dans Visual Studio 2019, nous avons apporté quelques changements aux modèles Office, SharePoint et VSTO.

  • Les modèles SharePoint 2019 qui ont été ajoutés dans Visual Studio 2017 version 15.9 sont également disponibles dans Visual Studio 2019.
  • Nous avons supprimé la prise en charge du flux de travail séquentiel SharePoint et des flux de travail de machine à états. Vous ne pouvez pas créer ni ouvrir ces flux de travail dans Visual Studio 2019, mais vous gardez la possibilité de les modifier dans les versions précédentes de Visual Studio.
  • Les modèles Office 2010 ne sont plus disponibles. Toutefois, vous pouvez toujours ouvrir des projets Office 2010 existants dans Visual Studio 2019.
  • Les modèles Office 2013 et 2016 ont été renommés pour refléter leur compatibilité avec Office 2013 et les versions ultérieures.

Team Explorer et Azure DevOps

Nous proposons une nouvelle expérience, rationalisée et centrée sur les développeurs, quand vous vous connectez à un projet Azure DevOps à partir de Team Explorer.

  • Concentrez-vous sur les éléments de travail pertinents pour vous, en les filtrant et en orientant votre vue sur les éléments de travail qui vous ont été assignés, ceux que vous suivez, ceux où vous êtes mentionné dans la discussion et ceux basés sur votre activité.

    • Dans chaque vue, vous pouvez créer un élément de travail intraligne, effectuer des modifications intraligne simples, marquer un élément de travail comme terminé et associer un élément de travail à des modifications en attente.
  • Créez une branche locale à partir d’un élément de travail pour lier automatiquement l’élément de travail aux modifications effectuées dans cette branche locale. Il s’agit de l’expérience par défaut. Si vous souhaitez basculer vers l’expérience héritée, vous pouvez activer l’expérience Éléments de travail dans Visual Studio. Notez que cette nouvelle expérience s’applique uniquement aux dépôts Git. La nouvelle expérience sera disponible pour les dépôts TFVC dans une mise à jour ultérieure.

    Hub d’éléments de travail Azure DevOps
    *Hub d’éléments de travail Azure DevOps*
  • Recherchez des éléments de travail en spécifiant #mention dans le message de validation des modifications en attente. Pour plus d’informations, consultez Afficher et ajouter des éléments de travail à l’aide de la page Éléments de travail.

    #mentions Azure DevOps
    *#mentions Azure DevOps*
  • La prise en charge de Microsoft Project a été supprimée du plug-in Intégration Office pour Team Foundation Server 2019 pour Visual Studio 2019 en raison d’un taux d’adoption faible dans Azure DevOps. Vous devez désormais exporter vos éléments de travail dans Excel et les coller manuellement dans Project.

  • La prise en charge de PowerPoint a été supprimée du plug-in Intégration Office pour Team Foundation Server 2019 pour Visual Studio 2019. Toutefois, les utilisateurs peuvent toujours créer des storyboards dans PowerPoint et les lier manuellement aux éléments de travail dans Azure DevOps.

Application Insights et HockeyApp

  • La fenêtre Tendances Application Insights a été supprimée dans Visual Studio 2019 et remplacée par d’autres solutions offrant davantage de fonctionnalités. À la place, vous pouvez utiliser la fenêtre Recherche Application Insights dans Visual Studio ou les nombreux outils de diagnostics disponibles dans Application Insights dans le portail Azure.
  • Les Assistants permettant d’ajouter le SDK HockeyApp et de créer des distributions bêta ont été supprimés. Nous vous recommandons d’utiliser à la place Visual Studio App Center, le successeur d’HockeyApp. Vous pouvez continuer à utiliser HockeyApp normalement, mais sans ces raccourcis dans Visual Studio.

Icône Notes de publication Problèmes résolus dans Visual Studio 2019 RC

Dernière mise à jour : 26 avril 2019


Problèmes connus

Passez en revue tous les problèmes connus et les solutions de contournement disponibles dans Visual Studio 2019 version 16.0 en suivant le lien ci-après.

Problèmes connus de Visual Studio 2019

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