Visual Studio Icon Notes de publication de Visual Studio 2019Visual Studio 2019 Release Notes


| Communauté de développeurs | Configuration système requise | Compatibilité | Code distribuable | Termes du contrat de licence | Blogs | Problèmes connus || Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Known Issues |


Cliquez sur le bouton pour télécharger la dernière version de Visual Studio 2019.Click a button to download the latest version of Visual Studio 2019. Pour des instructions sur l’installation et la mise à jour de Visual Studio 2019, consultez Mettre à jour Visual Studio 2019 vers la version la plus récente.For instructions on installing and updating Visual Studio 2019, see the Update Visual Studio 2019 to the most recent release. Consultez également les instructions sur l’installation en mode hors connexion.Also, see instructions on how to install offline.


Nouveautés de Visual Studio 2019What's New in Visual Studio 2019

Versions de Visual Studio 2019Visual Studio 2019 Releases

Blog Visual Studio 2019Visual Studio 2019 Blog

Le blog Visual Studio 2019 est la source officielle où l’équipe d’ingénierie de Visual Studio partage des insights sur le produit.The Visual Studio 2019 Blog is the official source of product insight from the Visual Studio Engineering Team. Vous trouverez des informations détaillées sur les versions de Visual Studio 2019 dans les billets de blog suivants :You can find in-depth information about the Visual Studio 2019 releases in the following posts:


Release Notes Icon Visual Studio 2019 version 16.0.4Visual Studio 2019 version 16.0.4 New Release icon

Publication : 14 mai 2019released May 14, 2019

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

Avis de sécuritéSecurity Advisory Notices

CVE-2019-0727 Vulnérabilité liée à l’élévation de privilèges du service de collecteur standard du hub de diagnosticCVE-2019-0727 Diagnostics Hub Standard Collector Service Elevation of Privilege Vulnerability

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.An elevation of privilege vulnerability exists when the Diagnostics Hub Standard Collector Service improperly performs certain file operations. Un attaquant parvenant à exploiter cette vulnérabilité peut supprimer des fichiers dans des emplacements arbitraires.An attacker who successfully exploited this vulnerability could delete files in arbitrary locations. Pour tirer parti de cette vulnérabilité, l’attaquant a besoin d’un accès sans privilège à un système vulnérable.To exploit this vulnerability, an attacker would require unprivileged access to a vulnerable system. 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.The security update addresses the vulnerability by securing locations the Diagnostics Hub Standard Collector performs file operations in.


Release Notes Icon Visual Studio 2019 version 16.0.3Visual Studio 2019 version 16.0.3

publié le 30 avril 2019released April 30, 2019

Nouveautés dans Visual Studio 2019 version 16.0.3What's New in 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.Visual Studio Tools for Kubernetes now supports the latest Azure Dev Spaces.

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


Release Notes Icon Visual Studio 2019 version 16.0.2Visual Studio 2019 version 16.0.2

Publication : 18 avril 2019released April 18, 2019

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


Release Notes Icon Visual Studio 2019 version 16.0.1Visual Studio 2019 version 16.0.1

Publication : 9 avril 2019released April 09, 2019

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


Release Notes Icon Visual Studio 2019Visual Studio 2019

publication le 2 avril 2019released April 02, 2019

Récapitulatif des nouveautés de Visual Studio 2019Summary of What's New in Visual Studio 2019

InstallezInstall

IDEIDE

  • Collaborez avec d’autres utilisateurs à l’aide de Visual Studio Live Share, qui est installé par défaut.Collaborate with others using Visual Studio Live Share, which is installed by default. 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.Additional language support for C++, VB.NET, and Razor gives guests a solution view and sharing of source control diffs.
  • 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.Open code you recently worked on or start from one of the most commonly used flows like clone, open, or create a project through the new start window.
  • 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é.Create new projects with an improved search experience and filters using the new list of templates sorted by popularity.
  • 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.Have more vertical room for your code and a modernized look and feel through a set of new visual changes in the shell.
  • 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.View a sharper version of your IDE regardless of your display configuration and/or scaling, as we have improved support for per monitor awareness.
  • Utilisez une fonctionnalité de recherche améliorée dans Visual Studio pour les menus, les commandes, les options et les composants installables.Use an improved search capability in Visual Studio for menus, commands, options, and installable components.
  • Vérifiez rapidement l’« intégrité » de votre fichier de code grâce à un indicateur de document.Quickly understand your code file's 'health' with a document indicator. Lancez et configurez le nettoyage du code en un clic sur cet indicateur.Run and configure through a one-click code cleanup from the indicator.
  • 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.Easily manage the preview features you are opted in to with a new Preview Features page in the Options dialog.
  • 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.Create new projects with improvements in tag-based search and an easily accessible "Recent project templates" list.
  • Créez des éléments directement à partir de Rechercher dans Visual Studio et obtenez des résultats plus rapidement avec une plus grande pertinence.Create new items directly from Visual Studio Search and find results faster with improved relevance.
  • Tenez-vous informé des informations importantes, telles que les demandes Visual Studio Live Share, avec une nouvelle expérience de notifications.Stay informed of important information, such as Visual Studio Live Share requests, with a new notifications experience.
  • 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.Save a collection of code cleanup fixers as a profile to easily select the fixers you want run during code cleanup.
  • Déclenchez de nouveaux correctifs du code et refactorisations .NET.Trigger new .NET refactoring and code fixes.
  • Configurez des projets .NET Core plus facilement avec des fichiers projet de première classe.Configure .NET Core projects more easily with first-class project files.
  • Affichez l’état de vos extensions avec des balises Preview, Paid et Trial dans la boîte de dialogue Extensions et mises à jour.See the status of your extensions with Preview, Paid, and Trial tags in the Extensions and Updates dialog.
  • 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).Check and configure which Preview features you want active since the defaults have been reset in this Preview.
  • 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.Keep your extensions up-to-date by excluding certain Test Window APIs that have been marked as deprecated in this release.
  • 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.Sign in, browse, and one-click clone or connect to your hosted repositories from Azure DevOps through the start window.
  • 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.Install extensions for other source control hosts to view repositories owned by you and your organization.
  • 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.Experience an improved Blue theme experience that addresses feedback by dialing down the luminosity, improving overall contrast and addressing other usability issues.
  • Appliquez des préférences de style de code à partir de la ligne de commande avec l’outil global dotnet format.Apply code style preferences from the command-line with the dotnet format global tool.
  • MSBuild et Visual Studio ciblent maintenant .NET Framework 4.7.2 par défaut.MSBuild and Visual Studio now target .NET Framework 4.7.2 by default.
  • 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.We have removed Azure App Service-related features from Server Explorer; equivalent functionality is instead available in Cloud Explorer.

PerformancesPerformance

Débogage général et diagnosticsGeneral Debugging and 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.Search keywords within the Watch, Autos, and Locals windows while debugging to improve your ability to find objects or values.
  • 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.View a dropdown of format specifiers in the Watch, Autos, and Locals windows when inspecting data.
  • Utilisez un visualiseur personnalisé, désormais compatible avec .NET Core.Use a custom visualizer, now compatible with .NET Core.
  • Déboguez vos applications volumineuses à l’aide de très nombreux modules et fichiers PDB.Debug very large applications with large numbers of modules and PDBs.
  • Lancez Google Chrome avec des arguments personnalisés et déboguez vos applications JavaScript dans l’IDE Visual Studio.Launch Google Chrome with custom arguments and debug your JavaScript applications all within the Visual Studio IDE.
  • 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.Use Hot Path Highlighting for CPU and DotNet Object Allocation tools in the Performance Profiler.
  • Effectuez un arrêt quand la valeur de propriété d’un objet change dans une application .NET Core 3.0+ à l’aide de points d’arrêt sur variable, fonctionnalité qui était au départ propre à C++.Break when a specific object's property value changes in .NET Core 3.0+ applications using data breakpoints, a feature that was originally exclusive to 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.Since Preview 1, we have updated the UI for searching in the Autos, Locals, and Watch windows with a simpler interface. 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.The Search Deeper function has been changed to a dropdown so you can quickly select how deep you want your initial and subsequent searches to be.

Contrôle de code source et Team ExplorerSource Control and 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.Temporarily store changes so you can work on another task by using Team explorer's Git tools support for Git stash.
  • 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.Check out the optional extension available on the Visual Studio Market Place, Pull Requests for Visual Studio, that integrates Pull Request reviews into 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.Use the new Azure DevOps work item experience that focuses on developer workflows, including user-specific work item views, creating a branch from a work item, searching for work items with #mentions, and inline editing.

ExtensibilitéExtensibility

  • Utilisez un seul SDK Visual Studio unifié dans le package NuGet Microsoft.VisualStudio.SDK.Use a single, unified Visual Studio SDK in the NuGet package Microsoft.VisualStudio.SDK.
  • Profitez de notre mise à jour du projet VSIX pour inclure désormais une classe AsyncPackage.Take advantage of our update to the VSIX Project to now include an AsyncPackage.
  • Expérimentez un nouveau modèle Projet VSIX vide que nous avons ajouté.Experiment with a new Empty VSIX Project template that we have added.
  • 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.Know if an extension is Free, Paid, or Trial, as it is now indicated inside the Extensions and Updates dialog.

Langages de programmationProgramming Languages

C#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 :Experience a preview of the 8.0 language features that the C# compiler now supports, including:

  • Types références 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 Nullable s’ils sont annotés avec ?, et comme non-Nullable dans le cas contraire.Nullable reference types: When the feature is turned on (for example, with #nullable enable or at the project-level with <NullableContextOptions>enable</NullableContextOptions>), reference types are treated as nullable if annotated with ?, and as non-nullable otherwise. Le compilateur analyse ensuite où circulent les valeurs null, et affiche des avertissements relatifs aux cas d’usage potentiellement non sécurisés.The compiler then analyzes where null values flow and warns about likely unsafe usages.
  • Expressions switch : Offre une sémantique semblable à switch dans le contexte d’une expression.switch expressions: Offers switch-like semantics in an expression context.
  • Critères spéciaux récursifs : de nouveaux modèles permettent de tester des champs/propriétés et des éléments positionnels (à partir de tuples ou de déconstruction).Recursive pattern matching: New patterns allow testing fields/properties and positional elements (from tuples or deconstruction).
  • 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.Support for Range and Index types being used in CoreFX for slicing, including the x..y literal syntax for ranges.
  • 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>.Asynchronous streams represented by IAsyncEnumerable<T> can be enumerated asynchronously with await foreach and can be produced with async IAsyncEnumerable<T> iterator methods.
  • Déclarations using : suppression à la fin du bloc actuel, sans augmenter le niveau d’imbrication.using declarations: Dispose at the end of the current block, without increasing the level of nesting. Les structs ref peuvent être supprimés en implémentant une méthode Dispose() publique.ref structs can be disposed by implementing a public Dispose() method.
  • Fonctions locales static : les fonctions locales marquées avec static ne peuvent pas référencer this ou des variables dans les fonctions englobantes.static local functions: Local functions marked with static cannot reference this or variables in the enclosing functions.
  • 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.Local functions and lambdas can now declare parameters and locals that shadow names of variables of the enclosing functions.
  • Attribution de fusion null : x ??= y; attribue uniquement y à x si x était null.Null-coalescing assignment: x ??= y; only assigns y to x if x was null.

Apprenez-en davantage dans la vue d’ensemble de C# 8.0 par Mads.Find out more in Mads' overview of C# 8.0.

Pour plus d’informations, consultez l’état des fonctionnalités de langage C# et les changements cassants.See the C# language feature status and breaking changes for more details.

En outre, vous pouvez utiliser des fonctionnalités de langage C# plus modernes dans Visual Studio par défaut.Additionally, you can use more modern C# language features in Visual Studio by default.

C++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.Save time when writing C++ and XAML code by using Visual Studio IntelliCode, an optional extension that gives AI-assisted recommendations for your code.
  • Recevez des avertissements d’analyse du code dans l’éditeur.Experience in-editor code analysis warnings. L’analyse du code s’exécute automatiquement en arrière-plan et les avertissements sont affichés sous forme de tildes verts.Code analysis runs automatically in the background and warnings display as green squiggles.
  • 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.Try the new Template Bar, which uses the Peek Window UI and supports nested templates.
  • Exécutez la nouvelle implémentation du vérificateur de profil de durée de vie C++.Run the new, updated implementation of the C++ Lifetime profile checker.
  • Configurez vos projets CMake à l’aide du nouvel éditeur de paramètres CMake, qui fournit une alternative à CMakeSettings.json.Configure your CMake projects using the new CMake Settings Editor, which provides an alternative to 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.Try out a host of backend improvements including OpenMP SIMD vectorization, link-time speedups, and more aggressive inlining.
  • 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.Open existing CMake caches generated by external tools, such as CMakeGUI, or customized meta-build systems.
  • Améliorez l’analyse avec /Qspectre afin de fournir une aide corrective pour Spectre Variant 1 (CVE-2017-5753).Improve analysis with /Qspectre for providing mitigation assistance for Spectre Variant 1 (CVE-2017-5753). Pour plus d’informations, consultez le billet de blog de l’équipe Visual C++.For more information, see the Visual C++ Team Blog post.
  • 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.Quickly switch between your previous sample arguments now that the Template Bar for Template IntelliSense has a Most Recently Used dropdown.
F#F#
  • F# 4.6 est désormais publié, de même que diverses autres améliorations du compilateur.F# 4.6 is released, along with various other compiler improvements.
  • Profitez de l’amélioration des performances pour les solutions volumineuses et diverses résolutions de bogues pour les outils F# et F#.Experience performance improvements for larger solutions and various bug fixes for F# and the F# tools.
  • Apprenez-en davantage sur le travail exceptionnel effectué par les contributeurs open source pour le langage et les outils F#.Learn about some of the awesome work done by open source contributors to the F# language and tools.
JavaScript/TypeScriptJavaScript/TypeScript
PythonPython
  • Ajoutez facilement des environnements Python conda et virtuels à l’aide de la boîte de dialogue Ajouter un environnement Python.Easily add Python virtual and conda environments using the Python Add Environment dialog.
  • 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.Work more easily with Python environments, including improved support for Open Folder workspaces using a new Python environment selector toolbar.
  • Créez des sessions Visual Studio Live Share et collaborez sur du code Python avec d’autres utilisateurs de Visual Studio.Create Visual Studio Live Share sessions and collaborate on Python code with other Visual Studio users.

Technologies WebWeb Technologies

Outils de conteneurContainer Tools

Développement mobile avec XamarinMobile Development with Xamarin

Plateforme Windows universelle (UWP)Universal Windows Platform (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.Preserve comments, spacing, namespaces, and any other text changes when making edits from the designer. Le concepteur de manifeste de package reste désormais totalement fidèle aux changements xml dans le fichier Package.appxmanifest.The package manifest designer now maintains strict fidelity to xml changes in the Package.appxmanifest file.
  • Utilisez le projet Création de package d’application Windows pour les projets .NET Core afin de générer des packages MSIX.Use the Windows Application Packaging project for .NET Core projects to produce MSIX packages.
  • Utilisez l’Assistant Création de package pour effectuer des soumissions directes au Microsoft Store.Use the Package Creation Wizard for direct Microsoft Store submissions.
  • Le déploiement sur les appareils Windows Mobile n’est plus pris en charge dans Visual Studio 2019.Deployment to Windows Mobile devices is no longer supported in 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 ».Attempts to deploy to a Windows 10 Mobile device will result in an error saying "Deployment to Windows Mobile devices is not supported in Visual Studio 2019". Si vous avez besoin de continuer à travailler sur une application pour des appareils Windows 10 Mobile, continuez à utiliser Visual Studio 2017.If you need to continue working on an application for Windows 10 Mobile devices, continue to use Visual Studio 2017.

SQL Server Data ToolsSQL Server Data Tools

  • Profitez de la mise à jour de SSDT et DacFX, qui inclut désormais la prise en charge du classement UTF-8.Experience an updated SSDT and DacFX that now includes UTF-8 collation support.

Présentation détaillée des nouveautés de Visual Studio 2019Details of What's New in Visual Studio 2019

InstallerInstall

  • Vous pouvez maintenant choisir comment installer les mises à jour de Visual Studio.You can now choose how to install Visual Studio updates. 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.The default mode is ‘Download all, then install’ which allows you to continue using Visual Studio while updates are being downloaded. 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.Note that, if you select ‘Download all, then install’, you’ll need to finish up the installation by opening the Visual Studio Installer and selecting Continue.
  • Les mises à jour de Visual Studio seront maintenant téléchargées en arrière-plan.Visual Studio updates will now be downloaded in the background. Ces téléchargements auront lieu uniquement quand votre ordinateur sera inactif.These downloads will occur only when your machine is idle. 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é.When the downloads complete, you will get a notification inside Visual Studio that your download is now ready to install.
  • Vous pouvez désormais contrôler le mode d’installation des mises à jour et préciser s’il faut les télécharger par le biais du menu Outils > Options en changeant les paramètres de la page Mises à jour du produit.You can now control your update installation mode and whether to download updates or not through the Tools > Options menu by changing the settings on Product Updates page.
Product Update Options
Options de mise à jour du produitProduct Update Options

Fenêtre de démarrageStart window

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.The new start window provides a streamlined launch experience to help you quickly get to your code upon starting up Visual Studio.

  • Affichez vos projets et dossiers récents, et ouvrez-les en un seul clic.View your recent projects and folders, and open them with a single click. Épinglez et supprimez des éléments de la liste par le biais du menu contextuel.Pin and remove items from the list through the context menu.
  • 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.Clone or check out code by using any public or private git URL, which will also automatically open the folder in the 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.Sign in, browse, and one-click clone or connect to your hosted repositories from Azure DevOps or install extensions for other source control hosts to view repositories owned by you and your organization.
  • 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.Browse your local disk or network share for projects, solutions, or any folders containing code, and open them in the 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.Select a project template that provides you with code scaffolding to help you get started with a new project or 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.Search for project templates by their title, description, and tags or filter through available languages, platforms, and project types. 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.The default list shows all available templates, while a list of your top 10 recently used project templates appears on the left pane for quick access. Un Assistant de deux pages vous permet de vous concentrer sur une décision à la fois.A two-page wizard allows you to concentrate on one decision at a time.
Start window
Nouvelle fenêtre de démarrageNew Start Window Experience

Interpréteur de commandes et plateformeShell and platform

  • Identifiez rapidement votre version de Visual Studio ouverte et utilisée grâce à la nouvelle icône améliorée du produit.Quickly spot which version of Visual Studio you're opening and using via the new, improved product icon. Cette icône est également plus visible sur de nombreux arrière-plans.The new icon is also more visible against a variety of backgrounds.
  • 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é.Experience a modernized look and feel of Visual Studio with our refreshed blue theme that gives you a cleaner user interface while still meeting our accessibility standards.
  • 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.See more of your code, through our changes that target compactness and reclaim vertical space in the IDE. Nous avons combiné la barre de titre et la barre de menus tout en conservant les fonctionnalités existantes.We have combined the title bar and the menu bar while also preserving existing functionality.
  • Utilisez notre nouveau paramètre expérimental permettant la prise en charge de la résolution par moniteur dans Visual Studio.Use Visual Studio as a Per-Monitor Awareness application through a new, experimental setting. 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.When on, this setting helps parts of Visual Studio, such as the shell and the editor, render more sharply regardless of your display configuration and/or scaling.
  • Expérimentez la recherche avancée pour les menus, les commandes, les options et les composants installables.Experience an enhanced search experience across menus, commands, options, and installable components. 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.Our new search now displays results dynamically, accommodates spelling errors, and provides relevant information (such as keyboard shortcuts) inside the search results.
Visual Studio Search with results
Recherche avancée dans Visual StudioEnhanced Search in Visual Studio
  • Affichez des informations sur l’intégrité du fichier actuellement ouvert à l’aide de l’indicateur d’intégrité du document.View health information associated with your currently open file through the Document Health Indicator feature.
Document Health Indicator
Indicateur d’intégrité du document - problème dans le documentDocument Health Indicator - issue in document
Document Health Indicator
Indicateur d’intégrité du document - aucun problèmeDocument Health Indicator - no issues
  • 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.If you are a C# developer, you can quickly clean up some of the most common coding suggestions using Code Cleanup.
  • Configurez le nettoyage du code pour sélectionner les correctifs à exécuter.Select the set of fixers you'd like to have run by configuring Code Cleanup.
Code Cleanup configuration dialog
Configurer le nettoyage du codeConfigure Code Cleanup
  • Affichez le contenu de l’historique du Presse-papiers à partir d’un menu contextuel qui développe le Presse-papiers circulaire (Ctrl+Maj+V).See the contents of your clipboard history via a context menu that extends the Clipboard Ring (Ctrl + Shift + V).
Clipboard Ring context menu
Menu contextuel du Presse-papiers circulaireClipboard Ring Context Menu
  • Nous avons amélioré l’expérience de recherche en :We've improved your search experience by:
    • Ajoutant des filtres pour les menus, composants et modèles.Adding filters for Menus, Components, and Templates
    • Incorporant vos sélections de recherche afin de vous donner les résultats de recherche les plus pertinents.Incorporating your search selections to give you the most relevant search results
    • Vous permettant de créer et d’ajouter de nouveaux projets/éléments à votre solution directement à partir de Rechercher dans Visual Studio.Enabling you to create and add new projects/items to your solution directly from Visual Studio Search
  • 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).The improved Per-Monitor Awareness (PMA) experience is now turned on by default for users that meet the minimum set of requirements (.NET 4.8 Preview & and Windows 10 April 2018 Update or newer). 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.Tool windows such as Toolbox, Breakpoints, Watch, Locals, Autos & Call Stack have been converted to PMA and thus render sharply regardless of your display configuration and/or scaling.
  • Une nouvelle expérience de notification ajoute :A new notification experience adds:
    • Une nouvelle expérience de compteurs et d’icônes à la barre d’état.A new icon and counter experience to the status bar
    • Un nouveau mécanisme de notification toast.A new toast notification mechanism
    • Des notifications de mises à jour de Visual Studio et d’expiration de licence Visual Studio.Visual Studio Updates & Visual Studio licensing expiration notifications
  • 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.A revised Blue theme experience that addresses feedback by dialing down the luminosity, improving contrast and addressing other usability issues.
  • 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.Enhanced window-dragging capabilities by leveraging available free space in the toolbar region as a draggable region.
  • 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.You can now save a collection of Code Cleanup fixers as a profile so you can quickly select the set of fixers you want run during Code Cleanup.
Visual Studio Code Cleanup Profiles
Profils de nettoyage de code de Visual StudioVisual Studio Code Cleanup Profiles
  • 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.We've added tags in the Extensions and Updates dialog to help you quickly understand whether an extension is in Preview, is a Paid extension, or is in a Trial period.
Extensions and Updates dialogs with tags
Boîte de dialogue Extensions et mises à jour avec étiquettesExtensions and Updates dialogs with tags
  • 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.The recommended way to implement data tooltips in Visual Studio 2019 and later is now IAsyncQuickInfoSourceProvider. Les API Info express de l’éditeur hérité, IVsTextTipData et TextTipData, sont dépréciées dans Visual Studio 2019 Preview 1.Legacy Editor Quick Info APIs IVsTextTipData and TextTipData are deprecated in 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.The Editor Smart Tags (ISmartTag* family of interfaces in Microsoft.VisualStudio.Language.Intellisense namespace) have been deprecated in favor of the LightBulb API and are no longer supported starting with 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.The solution options Show advanced build configurations, Always show solution, and Save new projects when created have been removed due to low usage. Ces valeurs ont été définies sur leur valeur par défaut, True.These values have been set to their default value of True.
  • Vous pouvez activer ou désactiver certaines fonctionnalités en préversion à partir de la nouvelle page Fonctionnalités en préversion, accessible via Outils > Options > Environnement > Fonctionnalités en préversion.Opt in or out of certain preview features using the new Preview Features page found in Tools > Options > Environment > Preview Features.

PerformancesPerformance

  • Nous avons ajouté un nouveau raccourci vers Générer la sélection pour les dossiers et les solutions : Ctrl + B.We have added a new shortcut for Build Selection for folders and solutions: Ctrl + B.
  • Ouvrez rapidement des solutions de grande taille en chargeant votre solution avec tous les projets déchargés.Quickly open large solutions by loading your solution with all projects unloaded. Ne pas charger les projetsDo not load projects
  • Choisissez les projets à charger à l’ouverture de la solution avec des fichiers de filtre de solution.Choose which projects to load on solution open with Solution Filter Files.
    • 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.Create a Solution Filter File by unloading projects you don't want opened automatically, right-clicking the solution, and selecting Save As Solution Filter. Vous pouvez ensuite utiliser ce fichier de filtre pour ouvrir la solution à chaque fois que vous en avez besoin.You can then use the filter file to open the solution for subsequent uses. Filtres de solutionSolution filters
  • Nous avons ajouté une commande Tout générer pour les fichiers CMake : Ctrl + Maj + B.We have added a command to Build All for CMake files: Ctrl + Shift + B.
  • Nous avons amélioré les performances d’IntelliSense dans les fichiers C++ dans les projets CMake.We've improved IntelliSense performance in C++ files in CMake projects.
  • Nous avons ajouté une commande pour charger les dépendances de projet non chargées aux menus contextuels de projet et de solution.We've added a command to load unloaded project dependencies to the project and solution context menus.
  • Les conseils de notification pour améliorer les performances de Visual Studio sont désormais conservés dans le centre de performances, accessible par le biais d’Aide > Gérer les performances de Visual Studio.Notification tips to improve performance of Visual Studio are now persisted in the performance center, accessible via Help > Manage Visual Studio Performance.
  • 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.You can now see your solution load progress in the Task Status Center, as well as alerts when your solution loads finish.
  • Sélectionnez les projets à charger à l’ouverture de la solution avec des fichiers de filtre de solution.Choose which projects to load on solution open with Solution Filter Files.
    • 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.Create a Solution Filter File by unloading projects you don't want opened automatically, right-clicking the solution, and selecting Save As Solution Filter. Vous pouvez ensuite utiliser ce fichier de filtre pour ouvrir la solution à chaque fois que vous en avez besoin.You can then use the filter file to open the solution for subsequent uses.
  • 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.Experience improved build asset discovery and file search when you Ctrl+T in Open Folder scenarios.
  • 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.Notice performance improvements now that the Visual Studio editor will limit the impact of auxiliary components on typing performance. En particulier, l’éditeur annulera automatiquement les opérations non essentielles de longue durée lors de la frappe.Particularly, it will auto-cancel any long-running, nonessential operations when typing.
  • Vous pouvez configurer le comportement de limitation des composants auxiliaires de Visual Studio dans Outils > Options > Éditeur de texte > Avancé :You can configure the Visual Studio auxiliary component limitation behavior via Tools > Options > Text Editor > Advanced:
Visual Studio Typing Latency Options
Options de latence de frappe de Visual StudioVisual Studio Typing Latency Options
  • 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.You can now disable the restoration of the project hierarchy state from the previous session in the Solution Explorer tool window. 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.We implemented this change because restoring the project hierarchy from previous session at solution open can delay solution load.
    • Activez ou désactivez cette option dans Outils > Options > Projets et solutions > Général.Toggle this option in Tools > Options > Projects and Solutions > General.
Solution load restore settings
Paramètres de restauration - Chargement de la solutionSolution load restore settings
\* Vous pouvez maintenant 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.\* You can now disable the restoration of the tool window's state from the previous session and instead always load Solution Explorer and Team Explorer at startup. Nous avons implémenté ce changement, car le lancement d’une telle restauration pouvait différer le chargement de la solution au démarrage.This change was implemented because restoring tool windows from previous sessions can delay solution loads at startup. \* Activez ou désactivez cette option dans **Outils > Options > Environnement > Démarrage**.\* Toggle this option in **Tools > Options > Environment > Startup**.

Débogage et diagnostics générauxGeneral Debugging and Diagnostics

Débogage généralGeneral Debugging
  • 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.Highlight, find, and navigate with keywords using our new search feature that we integrated into the Watch, Autos, and Locals windows.
Searching for keywords in Watch
Recherche dans la fenêtre EspionSearching in the Watch Window
  • 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.View a dropdown of specifiers and options to format data in the Watch, Autos, and Locals windows by appending a comma to a listed item.
Format Specifier Dropdown List in Watch
Liste déroulante de spécificateurs de format dans la fenêtre EspionFormat Specifier Dropdown in Watch Window
  • Vous bénéficiez maintenant de la prise en charge des visualiseurs DataSet et personnalisés pour .NET Core.You can now use custom and DataSet visualizer support for .NET Core.
DataSet Visualizer for .NET Core
Visualiseur DataSet pour applications .NET CoreDataSet Visualizer for .NET Core applications
  • Pour les applications C++ exécutées sur Windows, les fichiers PDB se chargent maintenant dans un processus 64 bits distinct.For C++ applications running on Windows, PDB now load in a separate 64-bit process. 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.This change addresses a range of crashes caused by the debugger running out of memory when debugging applications that contain a large number of modules and PDBs.
Points d’arrêt sur variable managésManaged data breakpoints

Vous pouvez maintenant effectuer un arrêt quand la valeur de propriété d’un objet change dans une application .NET Core (version 3.0 ou supérieure) à l’aide de points d’arrêt sur variable, fonctionnalité qui était au départ propre à C++.You can now break when a specific object's property value changes in .NET Core (3.0 or higher) applications using data breakpoints, a feature that was originally exclusive to 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 sur variable peut se concentrer sur la propriété d’un objet spécifique même quand il est hors de portée, alors que la première option peut provoquer des arrêts constants et non pertinents si des centaines d’objets appellent cette fonction.They are a great alternative to simply placing a breakpoint on a property's setter because a data breakpoint can focus on a specific object's property even when it's out of scope, whereas the former option may result in constant, irrelevant breaks if you have hundreds of objects calling that function.

Data breakpoints for .NET Core
Points d’arrêt sur variable dans une application .NET CoreData breakpoints in .NET Core application
Mises à jour de l’expérience utilisateur dans les recherches dans la fenêtre EspionWatch window Search UX Updates

Nous avons simplifié l’interface utilisateur de recherche dans les fenêtres Automatique, Variables locales et Espion.We have updated the UI for searching in the Autos, Locals, and Watch windows with a simpler interface. 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.The Search Deeper function has been changed to a dropdown so you can quickly select how deep you want your initial and subsequent searches to be.

Appliquer des préférences de style de code Apply code style preferences
  • 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.You can now apply code style preferences from the command-line with the dotnet format global tool. Pour effectuer l’installation, vous avez besoin du SDK .NET Core 2.1 ou ultérieur.To install, you will need .NET Core 2.1 SDK or later. Exécutez la commande suivante dans votre terminal préféré : dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10Run the following command in your favorite terminal: dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10
dotnet format video
Exécutez dotnet format à partir de la ligne de commande.Run dotnet format from the command-line.

ExtensibilitéExtensibility

  • Vous ne pouvez plus installer les extensions créées avec le format d’extension vsixmanifest V1 dans Visual Studio 2019.You will no longer be able to install extensions built with the V1 vsixmanifest extension format in 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.V1 was introduced in Visual Studio 2010 and was deprecated in Visual Studio 2017 because it could cause reliability issues with Visual Studio. Dans Visual Studio 2019, la prise en charge de V1 a été complètement supprimée.In Visual Studio 2019, the support for V1 has been completely removed. Les extensions ciblant Visual Studio 2019 doivent être regénérées avec la version V2 ou V3 du format vsixmanifest.Extensions targeting Visual Studio 2019 should be rebuilt V2 or V3 of the vsixmanifest format.
  • Vous êtes désormais averti quand une extension est chargée automatiquement de façon synchrone.You will now be notified when an extension is synchronously auto-loaded. 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.Note, the extension will load and work as normal in this release, but is at risk of not functioning in the next Visual Studio 2019 update. 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.More details can be found on our blog post about improving the responsiveness of critical scenarios by updating auto load behavior for extensions.
Package NuGet du SDK unifiéUnified SDK NuGet package

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.In the past, extension authors had to make many separate references to the individual NuGet packages of the Visual Studio SDK they needed to use in their 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.The versions of the various packages weren't always aligned and that often resulted in dependency conflicts at compile time as well as runtime issues.

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.To solve these issues, use a new package called Microsoft.VisualStudio.SDK which contains dependencies on all the packages that make up the Visual Studio SDK. Il résout le problème d’incompatibilité de versions et permet de savoir facilement quelle version utiliser.It solves the issue of version mismatches as well as makes it easy to know which version to use. 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.Simply use the version of the package that corresponds to the lowest version of Visual Studio your extension supports and you will have access to the entire 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.Right now, only version 15.9 of the SDK package exists, but more will be released in the months to come all the way to version 14.0.

Modèles de projet nouveaux et mis à jourNew and updated project templates

Le modèle Projet VSIX a connu plusieurs mises à jour en vue de le simplifier et de l’améliorer :The VSIX Project template has gone through multiple updates to simplify it and make it better:

  • Utilises le package NuGet du SDK unifiéUses the new, unified SDK NuGet package
  • Inclut une classe AsyncPackageIncludes an AsyncPackage class
  • Ne nécessite plus de fichier .resx pour compiler un packageNo longer requires a .resx file to compile a package
  • Cible .NET Framework 4.7.2Targets .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.A new Empty VSIX Project template has been created and it is the same as the VSIX Project template but without the AsyncPackage class. 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.It also references the unified SDK NuGet package providing a good starting point for MEF extensions and other package-less extension types.

Gratuit/Payant/EssaiFree/Paid/Trial

Il n’était pas simple de voir si une extension était marquée comme gratuite, payante ou à l’essai.There hasn't been an easy way to see if an extension was marked as free, paid, or a trial. 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.This now changes so that inside the Extensions and Updates dialog, each extension that is either a trial or paid will be marked clearly as such. Les extensions sans étiquette « essai »/« payante » sont gratuites.Extensions that don't have a trial/paid label are free.

Outils de testTesting tools

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.Additional APIs in the Test Window that were previously undocumented but marked as public have been added to the deprecation list.

Contrôle de code sourceSource Control

  • 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.Temporarily store changes so you can work on another task now that Team Explorer's Git tools support Git stash.
  • 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.Review, run, and even debug pull requests from Azure Repos without leaving the IDE using our brand-new pull request experience in 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.To get started, you can download the Pull Requests for Visual Studio extension from the Visual Studio Marketplace.
New Pull Request Experience
Nouvelle expérience de demande de tirage (pull request)New Pull Request Experience

MSBuildMSBuild

  • La version de l’ensemble d’outils MSBuild a été changée de 15.0 à Current.The MSBuild toolset version has been changed from 15.0 to Current. MSBuild.exe se trouve maintenant dans %VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exe.MSBuild.exe is now in %VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exe.
  • MSBuild et Visual Studio ciblent maintenant .NET Framework 4.7.2.MSBuild (and Visual Studio) now targets .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.If you wish to use new MSBuild API features, your assembly must also upgrade, but existing code will continue to work.

C#C#

Pour chaque version antérieure à Visual Studio 2019, la version de langage C# par défaut était toujours équivalente à Dernière version principale.For every release prior to Visual Studio 2019, the default C# language version was always equivalent to Latest Major. Dans Visual Studio 2017, C# a évolué et trois versions mineures ont été publiées : 7.1, 7.2 et 7.3.In Visual Studio 2017, C# evolved and released three minor versions: 7.1, 7.2, and 7.3. Toutefois, les nouveaux projets utilisaient toujours par défaut C# 7.0.However, new projects were still defaulting to 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.This proved frustrating for C# developers who wanted to use new features, but had to manually change the language version for each new project.

Pour résoudre ce problème, la version de langage C# par défaut est déterminée par son framework cible :To address this problem, the default C# language version is determined by its target framework:

  • Si vous ciblez .NET Core 3.0 Preview, la version de langage C# sera C# 8.0 Preview.If you are targeting .NET Core 3.0 preview, the C# language version will be 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.If you are targeting .NET Framework or any non-preview of .NET Core, the C# language version will by 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.This allows the use of the latest stable C# language features by default, and when using .NET Core previews, the use of C# 8.0 preview language features that align with .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.If you specify a language version via LangVersion in a project or props file, that language version overrides the previously described default.

C++C++

  • Collaborez en temps réel, car Visual Studio Live Share prend maintenant en charge C++.Collaborate in real time now that Visual Studio Live Share supports 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.Save time by by using IntelliCode, an optional extension that uses its extensive training and your code context to put what you're most likely to use at the top of your completion list. Pour C++, IntelliCode est le plus performant quand vous utilisez des bibliothèques populaires comme STL.For C++, IntelliCode offers the most help when you are using popular libraries like 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.We have modified several project template names and descriptions to fit with the updated New Project dialog.
  • Nous avons supprimé le composant expérimental Clang/C2.We have removed the Clang/C2 experimental component. 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.Use the MSVC toolset for full C++ standards conformance with /permissive- and/or /std:c++17, or the Clang/LLVM toolchain for Windows. Pour plus d’informations, consultez le blog de l’équipe Visual C++ .See the Visual C++ Team Blog for more details.
  • Le commutateur /Gm du compilateur C++ a été déprécié.We have deprecated the C++ Compiler /Gm switch. Désactivez le commutateur /Gm dans vos scripts de build s’il y est défini explicitement.Consider disabling the /Gm switch in your build scripts if it's explicitly defined. 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 »).Alternatively, you can also safely ignore the deprecation warning for /Gm as it will not be treated as error when using "Treat warnings as errors" (/WX).
  • L’expérience Android C++ utilise désormais Android SDK 25 et Android NDK 16b par défaut.The C++ Android experience now defaults to Android SDK 25 and Android NDK 16b.
Productivité Productivity
  • L’analyse du code s’exécute désormais automatiquement en arrière-plan.Code analysis now runs automatically in the background. Les avertissements sont marqués par des tildes verts dans l’éditeur à mesure que vous tapez.Warnings display as green squiggles in-editor as you type.
  • 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.The Template Bar now utilizes the Peek Window UI rather than a modal window, supports nested templates, and prepopulates any default arguments into the Peek Window.
  • Un correctif automatique pour l’avertissement d’analyse du code NULL->nullptr (C26477 USE_NULLPTR_NOT_CONSTANT) est disponible par le biais du menu Ampoule sur les lignes correspondantes, activé par défaut dans l’ensemble de règles Règles C++ Core Check pour Type.An automatic fix-it for the NULL->nullptr code analysis warning (C26477 USE_NULLPTR_NOT_CONSTANT) is available via the lightbulb menu on relevant lines, enabled by default in the C++ Core Check Type Rules ruleset. 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 « & ».Additional quick fixes in the IDE include adding missing #include directives, fixing missing semicolons, and fixing incorrect uses of '*' versus '&'.
  • 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++.Precompiled headers are no longer generated by default for C++ console and desktop apps.
  • Atteindre la définition fonctionne désormais sur les directives #include et ouvre le fichier correspondant.Go to Definition now works on #include directives, opening the corresponding file. Cela comprend le raccourci F12, offrant ainsi un moyen facile de naviguer dans votre code.This includes the F12 shortcut, providing an easy way to navigate around your code.
  • Le fait de pointer sur une accolade fermante d’un bloc de code fournit des informations utiles sur le contexte de ce bloc.Hovering over a closing brace of a code block provides some helpful information about the context of that block.
  • Nous avons ajouté la prise en charge dans ConcurrencyChecker des types STL connus à partir de l’en-tête <mutex>.We've added support in ConcurrencyChecker for well-known STL types from the <mutex> header.
  • 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.An updated partial implementation of the Lifetime profile checker is available for detecting dangling pointers and references.
  • Nous avons ajouté la prise en charge initiale dans le compilateur de l’opérateur C++20 <=>pour la triple comparaison.We've added initial support in the compiler for the C++20 operator <=> ("spaceship") for three-way comparison.
CMake CMake
  • Nous avons amélioré les performances d’IntelliSense pour les fichiers C++ dans les projets CMake.We've improved performance of IntelliSense for C++ files in CMake projects.
  • 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.Visual Studio helps bootstrap your C++ development with CMake on Linux by detecting if you have a compatible version of CMake on your Linux machine. Si ce n’est pas le cas, il propose de l’installer pour vous.If not, it offers to install it for you.
  • L’Éditeur de paramètres CMake fournit une alternative à CMakeSettings.json et offre une parité avec CMakeGUI.The CMake Settings Editor provides an alternative to CMakeSettings.json and provides some parity with CMakeGUI.
  • Le menu CMake a été supprimé et réorganisé pour une parité plus proche avec les projets et solutions.The CMake menu has been removed and reorganized for closer parity with projects and 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.Incompatible settings in CMakeSettings, such as mismatched architectures or incompatible CMake generator settings, show squiggles in the JSON editor and errors in the Error List.
  • 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é.The vcpkg toolchain is automatically detected and enabled for CMake projects that are opened in the IDE once vcpkg integrate install has been run. Ce comportement peut être désactivé en spécifiant un fichier de chaîne d’outils vide dans cmakesettings.This behavior can be turned off by specifying an empty toolchain file in CMakeSettings.
  • Les projets CMake autorisent maintenant le débogage Uniquement mon code par défaut.CMake projects now enable Just My Code debugging by default.
  • 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.Static analysis warnings can now be processed in the background and displayed in the editor for CMake projects.
  • 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.We've added clearer build and configure 'begin' and 'end' messages for CMake projects and support for Visual Studio's build progress UI. 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 génération et de configuration CMake dans la fenêtre Sortie.Additionally, there is now a CMake verbosity setting in Tools > Options to customize the detail level of CMake build and configuration messages in the Output Window.
  • 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.The 'cmakeToolchain' setting is now supported in CMakeSettings to specify toolchains without manually modifying the CMake command line.
Back-end Backend
  • 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.We've implemented build throughput improvements, including the linker's handling of File I/O and link time in PDB type merging and creation.
  • Nous avons ajouté la prise en charge de base de la vectorisation SIMD OpenMP.We've added basic support for OpenMP SIMD vectorization. Elle peut être activée avec le nouveau commutateur CL -openmp:experimental.This can be enabled with the new CL switch -openmp:experimental. Ainsi, les boucles annotées avec « #pragma omp simd » peuvent potentiellement être vectorisées.This allows loops annotated with “#pragma omp simd” to potentially be vectorized. La vectorisation n’est pas garantie, et les boucles annotées mais non vectorisées généreront un avertissement.The vectorization is not guaranteed, and loops annotated but not vectorized will get a warning reported. Si aucune clause SIMD n’est prise en charge, elles seront simplement ignorées et un avertissement sera signalé.If no SIMD clauses are supported, they will simply be ignored and a warning will be reported.
  • Nous avons ajouté un nouveau commutateur de ligne de commande d’incorporation (inlining) -Ob3, qui est une version plus agressive d’-Ob2.We've added a new inlining command line switch -Ob3, which is a more aggressive version of -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.-O2 (optimize the binary for speed) still implies -Ob2 by default; if you find the compiler is under-inlining, consider passing -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.To support hand vectorization of loops containing calls to math library functions and certain other operations like integer division, we've added support for Short Vector Math Library (SVML) intrinsic functions that compute the 128-bit, 256-bit or 512-bit vector equivalents. Pour obtenir les définitions des fonctions prises en charge, consultez le Guide des intrinsèques Intel.See the Intel Intrinsic Guide for definitions of the supported functions.
  • Optimisations nouvelles et améliorées :New and improved optimizations:
    • Simplifications arithmétiques et de pliage de constante pour les expressions à l’aide d’intrinsèques SIMD (vecteur), pour les formes float et integerConstant-folding and arithmetic simplifications for expressions using SIMD (vector) intrinsics, for both float and integer forms
    • 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 falseA more powerful analysis for extracting information from control flow (if/else/switch statements) to remove branches always proven to be true or false
    • Amélioration du déroulement de memset de façon à utiliser les instructions de vecteur SSE2Improved memset unrolling to use SSE2 vector instructions
    • Amélioration de la suppression des copies de struct/classes inutiles, en particulier pour les programmes C++ qui transmettent par valeurImproved removal of useless struct/class copies, especially for C++ programs which pass by value
    • Amélioration de l’optimisation du code à l’aide de memmove, par exemple pour les constructions std::copy ou std::vector et std::stringImproved optimization of code using memmove, such as std::copy or std::vector and std::string construction
Dépréciations Deprecations
  • Le modèle de projet de test C++ managé n’est plus disponible.The Managed C++ Test Project template is no longer available. 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é.You can continue using the Managed C++ Test framework in your existing projects but, for new unit tests, consider using one of the native test frameworks for which Visual Studio provides templates (MSTest, Google Test) or the Managed C# Test Project template.
  • Le SDK Windows 8.1 n’est plus disponible dans le programme d’installation de Visual Studio.The Windows 8.1 SDK is no longer available in the Visual Studio installer. Mettez à niveau vos projets C++ vers la dernière version du SDK Windows 10.Please upgrade your C++ projects to the latest Windows 10 SDK. 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.If you have a hard dependency on 8.1, you can download it from the Windows SDK archive.
  • Le ciblage de Windows XP ne sera plus disponible pour le dernier ensemble d’outils C++.Windows XP targeting will no longer be available for the latest C++ toolset. 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 ».XP targeting with VS 2017-level MSVC compiler & libraries is still supported and can be installed via "Individual components".
  • Notre documentation décourage activement l’utilisation de Fusionner les modules pour le déploiement Visual C++ Runtime.Our documentation actively discourages usage of Merge Modules for Visual C++ Runtime deployment. Dans cette version, nous allons encore un peu plus loin en marquant nos MSM comme dépréciés.We are taking the extra step this release of marking our MSMs as deprecated. Envisagez la migration de votre déploiement central VCRuntime des MSM vers le package redistribuable.Consider migrating your VCRuntime central deployment from MSMs to the redistributable package.
  • Les Assistants C++ ATL/MFC 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, l’Assistant Consommateur OLEDB ATL, Consommateur ODBC MFC, classe MFC du contrôle ActiveX et classe MFC de la bibliothèque de types.The following C++ ATL/MFC wizards are no longer available: ATL COM+ 1.0 Component Wizard, ATL Active Server Pages Component Wizard, ATL OLE DB Provider Wizard, ATL Property Page Wizard, ATL OLE DB Consumer Wizard, MFC ODBC Consumer, MFC class from ActiveX control, and MFC class from Type Lib. Les exemples de code pour ces technologies sont archivés dans Microsoft Docs et dans le dépôt GitHub VCSamples.Sample code for these technologies is archived at Microsoft Docs and the VCSamples GitHub repository.

F#F#

Les améliorations apportées à F# dans Visual Studio 2019 concernent trois domaines majeurs :F# improvements in Visual Studio 2019 are in three major areas:

  • F# 4.6F# 4.6
  • Améliorations de performances majeures pour les solutions de tailles moyenne et élevéeMajor performance improvements for medium and larger solutions
  • Notre excellente communauté open source a fourni un travail considérableLots of open source work by our excellent open source community
F# 4.6F# 4.6

Cette version comprend le langage F# 4.6 :This release contains the F# 4.6 language:

Améliorations apportées au compilateur F# et à FSharp.CoreF# compiler and FSharp.Core improvements

Le compilateur F# et FSharp.Core ont bénéficié de nombreuses améliorations, notamment de la part des contributeurs open source :The F# and compiler and FSharp.Core have seen numerous improvements, especially from open source contributors:

  • 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).fsi.exe and fsc.exe now defaults to .NET Framework 4.7.2, allowing the loading of components targeting this framework or lower (#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).We optimized methods on structs and struct records to perform as well as methods on classes and class-based records (#3057).
  • Nous avons optimisé le langage intermédiaire (IL) émis pour combiner la logique booléenne dans le code F# (#635).We optimized the emitted IL for combined Boolean logic in F# code (#635).
  • Nous avons optimisé l’utilisation de + avec des chaînes en F# pour effectuer le minimum d’appels String.Concat possible (#5560).We've optimized the use of + with strings in F# to call the minimal amount of String.Concat calls as 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.We fixed an issue in the FSharp.Core package where some extra directories with test assets were included. FSharp.Core 4.5.5 et 4.6.1 doit disposer du correctif (#5814).FSharp.Core 4.5.5 and 4.6.1 should have the fix (#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.When a user-defined attribute does not inherit from the Attribute class, you will now receive a warning, by 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).The AssemblyInformationVersionAttribute value in a project file now supports arbitrary values to support scenarios such as 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).A bug where illegal syntax with Active Patterns would cause an internal compiler error has been fixed by 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).A bug where the Module suffix was erroneously added to a module in a recursive module to match a type where the only difference is a generic parameter was fixed by 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).An improvement to the error message when type parameters are not adjacent to a type name has been improved by Alan Ball (#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).The uint16 literal suffix is listed correctly in the error messages for invalid numeric literals, by 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).Error messages for computation expressions no longer state async in the message and instead refer to "computation expression(s)", by 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).An error message when incorrectly referencing .dlls in F# interactive was fixed by 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).A bug where Statically Resolved Type Parameters couldn't handle calling a member that hides an inherited member was fixed by Victor Peter Rouven Müller (#5531).
  • Plusieurs petites améliorations des performances ont été apportées au compilateur par Steffen Forkmann et Robert Jeppesen.Various smaller performance improvements to the compiler have been added by Steffen Forkmann and Robert Jeppesen.
Amélioration des performances F#F# performance improvements

Les performances des moyennes et grandes solutions dans Visual Studio 2019 ont également bénéficié d’améliorations.Another big focus area for F# in Visual Studio 2019 has been performance for medium and large solutions. Nous avons résolu des problèmes très anciens, certains remontant à la toute première édition des outils F# pour Visual Studio.We addressed some very long-standing issues, some of which dating back to the very first edition of F# tools for Visual Studio. Nous avons également obtenu de l’aide de la part de l’excellente communauté open source F#.We also got some help from the excellent F# open source community.

  • Nous avons réorganisé la manière dont le service de langage F# est initialisé par Roslyn.We've revamped how the F# language service is initialized by Roslyn. La coloration de type pour les solutions volumineuses doit en général apparaître plus tôt.Type colorization for larger solutions should generally appear sooner.
  • 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).We changed our representation of source text to avoid large allocations over time, especially with bigger files (#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).We changed our build caches for small edits to files to use significantly less memory (#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).We modified a compiler feature that suggests names when unrecognized tokens are typed to only compute these suggestions on-demand, resulting in significant CPU and memory reductions when typing slowly in larger solutions (#6044).
  • Nous avons modifié IntelliSense pour qu’il n’affiche plus les symboles des espaces de noms non ouverts par défaut.We changed IntelliSense so that it will no longer show symbols from unopened namespaces by default. Cela améliore notamment les performances d’IntelliSense dans les projets contenant de nombreuses références.This notably improves performance for IntelliSense in projects with many references. Vous pouvez réactiver cette fonctionnalité dans les paramètres par le biais d’Outils > Options > Éditeur de texte > F# > IntelliSense.This feature can be turned back on in the settings via Tools > Options > Text Editor > 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).We improved memory usage when using Type Providers to generate very large amounts of provided types in a completion list (#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).A reduction to CPU and memory usage to an internal string comparison algorithm for suggesting unrecognized names has been fixed by 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).A notable source of large string allocations, particularly for IDE tooling, was fixed by 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)A notable source of Large Object Heap allocations coming from computing IntelliSense has been fixed by Chet Husk (#6084)
Améliorations des outils F#F# tooling improvements

Outre les améliorations de performances, diverses améliorations ont été apportées aux outils F# pour Visual Studio 2019 :In addition to performance improvements, various other improvements to F# tooling for Visual Studio 2019 have been made:

  • Le correctif de code d’ajout de l’instruction open ajoute maintenant par défaut l’instruction open en haut du fichier.The Add open statement code fix will now default to adding the open statement at the top of the file.
  • 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).We fixed a bug where match! in user code invalidated structure guidelines and code outlining nodes for subsequent scopes (#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).The editor will now correctly color byref, outref, and ref values as record fields with the mutable value colorization (#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).We fixed a bug where the rename refactoring did not recognize the ' character in symbol names (#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).We've fixed a longstanding bug where renaming F# script files resulted in a loss of colorization data (#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.We cleaned up IntelliSense so that it doesn't show unrelated items in the list when pressing backspace.
  • 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).With "Smart" indentation on, pasting F# code into the editor will now format it to match an appropriate scope based on the current cursor position, implemented by 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).An issue where F# editor options weren't syncing has been fixed by 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)A bug where IntelliSense in a constructor within an inherit clause wouldn't show the primary constructor has been fixed by Eugene Auduchinok (#3699)
  • Plusieurs améliorations mineures au service de langage F# ont été apportées par Eugene Auduchinok.Various smaller improvements to the F# language service have been made by Eugene Auduchinok
Infrastructure open source #FF# open source infrastructure

Nous avons terminé la migration de la base de code F# et des outils F# de façon à utiliser le SDK .NET.We've fully migrated the F# and F# tools codebase to use the .NET SDK. Cela simplifie considérablement le processus de contribution pour les développeurs, en particulier s’ils n’utilisent pas Windows.This dramatically simplifies the contribution process for developers, especially if they are not using 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.Additionally, Jakob Majocha has helped in cleaning up documents for new contributors in light of the changes to the codebase.

PythonPython

Nous avons pris en compte les commentaires des clients et avons largement amélioré la gestion des environnements Python dans Visual Studio 2019 :Based on customer feedback, Visual Studio 2019 includes an overhauled experience for managing Python environments:

  • 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.We added a new Add environment dialog that simplifies the experience of creating and adding virtual environments and conda environments in your project.
  • 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.The Visual Studio installer no longer installs full versions of Anaconda to reduce the size of Visual Studio installs and avoid errors during upgrades.
  • 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.Miniconda is bundled with Python workload as an optional component, enabling you to create conda environments without having to install 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.You will now be automatically prompted to add an environment if a requirements.txt (virtual environment) or environment.yml (conda environment) is present at the root of your project.
  • Une nouvelle barre d’outils Environnements Python est disponible lors de la modification des fichiers Python.A new Python Environments toolbar is available when editing Python files. 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.The new toolbar enables you to switch between different Python interpreters when working with projects, Open Folder workspaces or loose Python files in other projects.
  • 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.Improvements to the quality of auto-completions in Python IntelliSense, including improved detection of relative and namespace imports.
  • Les modèles de projet Django ont été mis à jour pour prendre en charge Django 2.x.Django project templates have been updated to support Django 2.x.
  • Les valeurs de retour de fonction sont maintenant affichées dans le débogueur Python.Function return values are now shown in the Python debugger.
  • 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.You can now create VS Live Share sessions and collaborate on Python code with other Visual Studio users. Auparavant, Python était uniquement pris en charge quand vous rejoigniez des sessions créées à partir de Visual Studio Code.Previously, Python was only supported when joining sessions created from Visual Studio Code.

JavaScript/TypeScriptJavaScript/TypeScript

  • Nous avons ajouté la prise en charge de l’activation du débogage JavaScript dans les tests unitaires dans les projets Node.js.We have added support for enabling JavaScript debugging within unit tests in Node.js projects. Cette fonctionnalité était très demandée par nos clients Node.js.This was a long-requested feature from our Node.js customers.
  • 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).The JavaScript/TypeScript language service will now be automatically loaded in projects that have the TypeScript NuGet package or npm package installed (TypeScript 3.2 and up is supported from the NuGet package and TypeScript 2.1 and up is supported from the npm package).
  • 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.We have implemented performance improvements in the language service as a result of increasing the memory cap on the language service to handle larger projects.
  • Nous n’affichons plus les diagnostics des fichiers JavaScript/TypeScript fermés dans la liste d’erreurs par défaut.We no longer show diagnostics of closed JavaScript/TypeScript files in the error list by default.
  • Le service de langage JavaScript hérité n’est plus disponible.The legacy JavaScript language service is no longer available. Les utilisateurs avaient auparavant la possibilité de restaurer ce service de langage.Previously, users had the option of restoring the legacy JavaScript language service. Ils disposent maintenant d’un nouveau service de langage JavaScript intégré.Users will now have the new JavaScript language service out-of-the-box. Ce nouveau service de langage est basé sur le service de langage TypeScript, qui repose sur l’analyse statique.The new language service is based on the TypeScript language service, which is powered by static analysis. 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.This enables better tooling, so your JavaScript code can benefit from richer IntelliSense based on type definitions. 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.The new service is lightweight and consumes less memory than the legacy service, providing users with better performance as their code scales.

Team Explorer et Azure DevOpsTeam Explorer and Azure DevOps

Nous avons apporté des améliorations à l’expérience liée aux éléments de travail Git avec Azure DevOps.We have made improvements to the Git Work Items experience with Azure DevOps.

  • Affectez des éléments de travail à vous-même ou à d’autres personnes avec le sélecteur d’identité.Assign work items to yourself or others with the new identity picker. Par défaut, vous verrez une liste des personnes que vous avez récemment utilisées.By default, you will be shown a list of the people you have most recently used. Vous pouvez aussi utiliser la fonctionnalité de recherche pour rechercher d’autres membres dans votre organisation.Or, use the search ability to search and find others in your organization.
  • Nous avons amélioré l’expérience #mentions dans le message de validation.We have improved the #mentions experience in the commit message. 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.As you select a work item from the #mention picker, it will automatically be added to the Related Work Items list.
Assigning work items and #mention improvements
Assignation d’éléments de travail et améliorations de #mentionAssigning work items and #mention improvements

Mise en surbrillance des chemins réactifsHot Path Highlighting

  • 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.We have added support for hot path highlighting in both the CPU Usage and DotNet Object Allocation tools in the Performance Profiler. 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.Select any function in the call tree and press the hot path button to expand the CPU Usage or Dot Net Object Allocation hot path. 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.This feature allows you to easily identify the function calls which use the highest percentage of the CPU or that allocate the most objects.
Hot path highlighting in the CPU Usage tool
Mise en surbrillance des chemins réactifs dans l’outil Utilisation de l’UCHot path highlighting in the CPU Usage tool

.NET et outils ASP.NET.NET and ASP.NET Tools

  • 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.We have implemented various small UX improvements to the publish profile summary page (new section headers and actions/shortcuts) for all 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 ».When publishing ASP.NET applications to Azure App Service, the publish profile summary page now has a new section called "Dependencies". Cette nouvelle section vous permet actuellement d’associer des ressources Stockage Azure et SQL Azure à votre instance de service d’application.This new section currently allows you to associate Azure Storage and Azure SQL resources with your app service instance. D’autres services Azure seront normalement exposés par le biais de ce mécanisme à l’avenir.Expect more Azure services to be surfaced through this mechanism in the future.
  • Utilisez des métriques de code avec les projets .NET Core pour bénéficier d’une meilleure compatibilité.Use code metrics with .NET Core projects with our added compatibility.
  • 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.Export editor settings to an Editorconfig file through Tools > Options > Text Editor > C# > Code Style with the button "Generate .editorconfig file from settings".
  • Utilisez le nouvel analyseur Regex de Visual Basic et C#.Use C# and Visual Basic's new Regex parser support. Les expressions régulières sont maintenant reconnues, et vous pouvez utiliser les fonctionnalités de langage sur ces expressions.Regular expressions are now recognized, and language features are enabled on them. 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.Regex strings are either recognized when a string is passed to the Regex constructor or when a string is immediately preceded with a comment containing the string 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.The language features included in this release are classification, brace matching, highlight references, and diagnostics.
Regular expressions now have parser support
Prise en charge de l’analyseur d’expression régulièreRegular Expression Parser Support
  • 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.You can now use dead code analysis for unused private members with an optional code fix to remove unused member declaration.
  • La fonctionnalité Rechercher des références utilisée sur un accesseur retourne maintenant uniquement les résultats pour cet accesseur.The Find References feature on an accessor now only returns results for that accessor.
  • Nous avons ajouté un correctif de code permettant la génération d’une méthode de déconstruction.We have added a code fix for generating a deconstruct method.
  • Vous pouvez ajouter des instructions « using » à du code collé dans un fichier."Using" statements can be added when code is pasted into a file. Un correctif de code apparaît après le collage de code reconnu pour vous inviter à ajouter les instructions import manquantes.A code fix appears after pasting recognized code that prompts you to add relevant missing imports.
  • Vous pouvez maintenant effectuer davantage de refactorisations et d’actions rapides avec « Ctrl+. »There are now more refactoring and quick actions available by using "Ctrl + ." ou « Alt+Entrée » :or "Alt + Enter":
    • Dans les cas où « await » est implicite mais omis, un nouvel avertissement du compilateur s’affiche.For cases where "await" is implied but omitted, there is now a compiler warning.
    • Pour la conversion d’une fonction locale en méthode.For converting a local function to a method.
    • Pour la conversion d’un tuple en struct nommé.For converting a tuple to a named-struct.
    • Pour la conversion d’un type anonyme en classe.For converting an anonymous type to a class.
    • Pour la conversion d’un type anonyme en tuple.For converting an anonymous type to a tuple.
    • Pour une boucle foreach vers une requête LINQ ou une méthode LINQ.For a foreach loop to LINQ query or to LINQ method.
  • Nous avons ajouté la prise en charge des applications ASP .NET Core exécutées dans Azure Kubernetes Service.You now have added support for ASP .NET Core applications running in an Azure Kubernetes Service. Pour démarrer, consultez cet exemple docker sur GitHub.To get started, see this docker example over on GitHub.
  • ASP.NET est désormais pris en charge dans l’outil Utilisation de l’UC du Profileur de performances.ASP.NET is now supported in the CPU Usage tool of the Performance Profiler.
CPU Usage Tool in Performance Profiler
Outil Utilisation de l’UC dans le Profileur de performancesCPU Usage Tool in Performance Profiler
  • 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.You can now use Find All References (Shift-F12) and CodeLens to show results from Razor (.cshtml) files in .NET Core projects. Vous pouvez ensuite accéder au code identifié dans les fichiers Razor correspondants.You can then navigate to the identified code in the relevant Razor files.
  • 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.We've added support for targeting ASP .NET (core and desktop) applications running on Windows Virtual Machines (VM) and VM Scale Sets.
Snapshot debugger target selection UI
Interface utilisateur de sélection de la cible du débogueur de capture instantanéeSnapshot Debugger Target Selection UI
  • Vous recevez désormais un avertissement quand vous effectuez une analyse du code à l’aide de FxCop.You will now receive a warning when running code analysis using FxCop. L’utilisation des analyseurs du compilateur .NET est maintenant la méthode recommandée pour l’analyse du code..NET Compiler analyzers are the recommended way to perform code analysis going forward. Découvrez comment migrer vers les analyseurs de plateforme du compilateur .NET.Read more on migrating to .NET compiler platform analyzers.
  • 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.Portable Class Library (PCL) project templates are no longer available, and project support will not be installed by default. Les nouveaux projets ciblant plusieurs plateformes doivent avoir le type de projet .NET Standard.New projects intended to target multiple platforms should use the .NET Standard project type. 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.Customers who require PCL project support must install the component separately from the Individual Components tab in the Visual Studio installer.
  • La commande « Project.CopyWebSite » n’est plus disponible.The "Project.CopyWebSite" command is no longer available. Cette fonctionnalité était uniquement disponible pour le type de projet « Site web » pour .NET.This feature was only available on the "Web Site" project type for .NET. Elle permettait de synchroniser deux sites web pour qu’ils aient la même version de chaque fichier.It provided the ability to synchronize two web sites so that they have the same version of each file. Dans Visual Studio 2019, vous pouvez copier les fichiers à partir de la destination distante en dehors de Visual Studio, puis ouvrir le projet.In Visual Studio 2019, you can copy the files from the remote destination outside of Visual Studio and then open the project.
  • Il n’est plus possible d’ouvrir un projet Site web à partir d’un emplacement FTP distant.The ability to open a Web Site project from a remote FTP location has been removed. 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.FTP users can copy the files from the remote destination outside of Visual Studio, open the project and make changes, and then use publish to push them back to the remote FTP location.
  • La charge de travail ASP.NET et web n’installe plus un environnement d’édition CoffeeScript personnalisé.The ASP.NET and Web workload no longer installs a custom CoffeeScript editing experience. Les bundles TextMate de Visual Studio sont plus appropriés pour travailler avec CoffeeScript.Visual Studio's TextMate bundles provide a superior experience for working with 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.CSS and CoffeeScript errors that are currently generated by built-in copies of CSSLint and CoffeeLint will no longer automatically surface when editing those files. 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.Use an alternative method for running linters such as npm or the Visual Studio Task Runner Explorer.
  • Visual Studio n’offre plus la fonctionnalité IntelliSense pour les attributs HTML de Knockout.Visual Studio no longer provides IntelliSense for Knockout HTML attributes. Dans Visual Studio 2019, vous devez taper ces attributs.In Visual Studio 2019 you will need to type the attributes.
  • Il n’est plus possible d’utiliser le débogueur Chrome hérité dans les projets ASP.NET pour le débogage de JavaScript.The ability to use the Legacy Chrome debugger in ASP.NET projects for debugging JavaScript has been removed. Vous pouvez continuer à utiliser le débogueur Chrome actuel qui est intégré à Visual Studio.You can continue to use the current Chrome debugger built into Visual Studio.
  • La possibilité d’utiliser les fonctionnalités de la console JavaScript dans les projets ASP.NET a été supprimée.The ability to use JavaScript Console functionality in ASP.NET projects has been removed. Nous recommandons aux clients d’utiliser la console de leurs outils de développement de navigateur favoris.We recommend that customers use Console included within their favorite browser devtools.

Type de conteneurContainer Tools

  • Nous avons ajouté une expérience de projet unique simplifiée pour la mise en conteneur et le débogage :We've added a streamlined single-project experience for containerizing and debugging:
    • Applications web ASP.NET (.NET Framework)ASP.NET Web Applications (.NET Framework)
    • Applications console (.NET Core)Console Applications (.NET Core)
  • Nous avons ajouté la prise en charge du débogage des applications ASP.NET Core qui utilisent Alpine comme image de base.We've added support for debugging ASP.NET Core Applications that use Alpine as a base image.
  • Nous avons ajouté la prise en charge des images ASP.NET et .NET Core les plus récentes.We've added support for the latest ASP.NET and .NET Core images.

Outils .NET Core.NET Core tools

.NET Core 3.0.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.With this release, you can create ASP.NET Core, Console, and Class Library projects targeting .NET Core 3.0 if you have the preview SDK installed.

Si vous utilisez Visual Studio RC, vous devrez également accéder à Outils > Options > Projets et solutions > .NET Core et cocher la case Use previews of the .NET Core SDKs (Utiliser les préversions des SDK .NET Core).If you are using Visual Studio RC, you need to also go to Tools > Options > Projects and Solutions > .NET Core and check the Use previews of the .NET Core SDKs checkbox. Si vous utilisez Visual Studio Preview, cette étape ne vous concerne pas.If you are using Visual Studio Preview, you do not need to do this. 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.You can read more about this setting and its behavior in .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 ».You can also create Windows Forms or WPF projects for .NET Core 3.0 with the "dotnet new" command. Ces projets peuvent ensuite être ouverts dans Visual Studio 2019.These projects can then be opened in Visual Studio 2019.

Nouvelles fonctionnalitésNew features

À 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.Starting with this release, we are making project files for .NET SDK-style projects a first-class file type in Visual Studio. Les opérations suivantes sont maintenant prises en charge :The following is now supported:

  • Double-cliquez sur un nœud de projet pour ouvrir le fichier projetDouble-click a project node to open the project file
  • Cliquez sur le nœud du projet pour ouvrir le fichier projet sous un onglet AperçuSingle-click the project node to open the project file in a Preview tab
  • Recherchez un fichier projet par nom avec Atteindre tout (ctrl + T)Find a project file by name with Go to All (ctrl + T)
  • Vous pouvez désormais effectuer des recherches dans les éléments MSBuild d’un fichier projet avec l’option Rechercher dans les fichiersMSBuild elements in a project file now are searchable with Find in Files
  • Ouverture à partir de la liste d’erreurs si une erreur de création de projet est déclenchéeOpening from the error list if a project authoring error is triggered

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.Additionally, .NET SDK-style projects will now use the new Integrated Console experience for F5 and ctrl + F5 on console apps. Cela unifie l’expérience lors du lancement des applications console à partir de Visual Studio :This unifies the experience when launching console applications from Visual Studio:

  • Pour F5, la fenêtre de console ne se ferme pas automatiquement quand l’application a fini de s’exécuter.For F5, the console window will not automatically close when the app is finished executing. Vous n’avez plus besoin d’ajouter des appels Console.Read() à vos applications console.You no longer need to add Console.Read() calls to your console apps.
  • Pour ctrl + F5, la fenêtre de console est réutilisée lors des exécutions ultérieures de votre application.For ctrl + F5, the console window will be re-used in subsequent runs of your app. Vous n’avez plus besoin de fermer de nombreuses fenêtres de console.You no longer need to close loads of console windows.

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.The new console window can be closed automatically by pressing a key when it is open or by selecting the option under Tools > Options > Automatically close the console when debugging stops.

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.Support for License Expressions and License Files has now been added to project property pages. Cela va de paire avec les changements visant à déprécier licenseUrl dans NuGet.This aligns with changes to deprecate licenseUrl in NuGet.

Amélioration des performancesPerformance improvements
  • 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.The scalability of large solutions has been significantly improved, allowing the use of much larger .NET Core solutions than before.
  • 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.Solution load times for large projects have been significantly reduced, as has the CPU and memory usage when loading them.
Parité des fonctionnalités avec les projets autres que .NET CoreFeature parity with non-.NET Core projects

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.You can find a full list of issues and pull requests in the 16.0, 16.0 Preview 2, 16.0 Preview 3, and 16.0 Preview 4 milestones.

Productivité .NET.NET Productivity

  • Correctifs de code et refactorisations .NET :.NET refactorings and codefixes:

    • Synchronisation de l’espace de noms et du nom du dossierSync Namespace and Folder Name
    • Extraction des membres de la refactorisation avec des options de boîte de dialoguePull members up refactoring with dialog options
    Pull members up refactoring with dialog options
    Boîte de dialogue d’extraction de membresPull Members Up dialog
    • Retour à la ligne/retrait/alignement des listes de paramètres/argumentsWrap/indent/align lists of parameters/arguments
    • Conversion de type anonyme en tupleConvert anonymous type to tuple
    • Utilisation d’un corps de bloc/expression pour lambdaUse expression/block body for lambda
    • Inversion des expressions conditionnelles et des opérations logiquesInvert conditional expressions and logical operations
    • Fermeture automatique du bloc de commentaire avec « / »Automatically close block comment on “/”
    • Conversion d’assignation composéeConvert to compound assignment
    • Correction du problème selon lequel les variables implicitement typées ne pouvaient pas être constantFix Implicitly-typed variables cannot be constant
    • Correcteur automatique pour remplacer @$" par $@" lors de la saisie de chaîne textuelle interpoléeAuto-fixer to replace @$" with $@" when typing interpolated verbatim string
    • Complétion pour #nullable enable|disableCompletion for #nullable enable|disable
    • Correctif pour les paramètres et valeurs d’expression non utilisésFix for unused expression values and parameters
    • Correctif afin d’autoriser Extraire l’interface à rester dans le même fichierFix for allowing Extract Interface to remain in the same file
  • Catégorisation des références par Lecture/Écriture.Categorize references by Read/Write.

  • Ajout de l’option Editorconfig when_multiline pour csharp_prefer_braces.Add Editorconfig when_multiline option for csharp_prefer_braces.

  • De nouvelles couleurs de classification sont disponibles dans le SDK .NET Compiler Platform (également appelé Roslyn).New classification colors are available from the .NET Compiler Platform SDK (aka 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.New default colors, similar to the Visual Studio Code colors, are gradually being rolled out. You can adjust these colors in Tools > Options > Environment > Fonts and Colors or turn them off in Environment > Preview Features by unchecking the Use enhanced colors check box. N’hésitez pas à nous écrire pour nous dire comment ce changement affecte votre flux de travail.We’d appreciate hearing feedback on how this change affects your workflow.

New Roslyn classification colors
Nouvelles couleurs de classification RoslynNew Roslyn classification colors

Débogage JavaScript dans les projets ASP.NETJavaScript Debugging in ASP.NET projects

  • 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.If you have added a new Google Chrome browser with custom arguments using the "Browse with..." menu for your ASP.NET project, Visual Studio will now enable JavaScript debugging for your application when debugging is started. Vos arguments de lancement personnalisés pour Google Chrome seront appliqués lors du lancement de Chrome.Your custom launch arguments for Google Chrome will be applied when launching Chrome.
Adding Google Chrome with Custom arguments using 'Browse with'
Ajout de Google Chrome avec des arguments personnalisés à l’aide de « Naviguer avec... »Adding Google Chrome with Custom arguments using 'Browse with...'
Remarque : Par défaut, Visual Studio lance Chrome à l’aide d’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. Note: Visual Studio, by default, will launch Chrome using a different data directory than your regular Chrome instance unless you provide the path to your data directory as an 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.As a result, if you require any extensions to be available when using this Chrome instance, you will need to install them the first time.

Outils ASP.NET et Azure FunctionsASP.NET & Azure Functions tooling

  • Visual Studio 2019 est fourni avec une nouvelle expérience de création de projets.Visual Studio 2019 comes with a new experience for creating new projects. 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.When creating new ASP.NET projects specifically, Visual Studio offers additional dialogs that surface ASP.NET specific choices. Ces boîtes de dialogue supplémentaires ont été mis à jour pour correspondre au style visuel du reste de l’expérience.These additional dialogs have been updated to match the visual style of the rest of the experience.
  • 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.For a while now, publish credentials in Visual Studio are encrypted and stored in the publish profile user file so you don't have to re-enter them every time you publish your 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.User files in general are excluded from source control by default because they are likely to contain secret and/or personal information that should not be shared. 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é.Up until now, if a publish profile for an Azure Functions project was checked into source control but the user file was not, the publish credentials were missing and the publish profile could not be re-used. 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é.Now, we allow for the credentials to be edited and a new user file to be created so that the publish profile can be re-used.

Assistant PerformancePerformance Wizard

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.In Visual Studio 2019, the profiling experiences that were available in the Performance Wizard have been moved to the Performance Profiler. L’outil Utilisation de l’UC pour l’échantillonnage et l’outil Instrumentation pour l’instrumentation se trouvent dans le Profileur de performances.You can find the CPU Usage Tool for sampling, and instrumentation in the Instrumentation tool in the Performance Profiler. En raison de ce changement, l’Assistant Performance n’est plus nécessaire et a été supprimé dans Visual Studio 2019.With this change the Performance Wizard is no longer needed and has been removed from 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.Additionally, the sampling option in the VS Performance command line tools have been removed, a replacement command line tool will be released in an upcoming preview.

Outils de testTest Tools

  • 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.You can now right-click on tests, test classes or test projects in the Solution Explorer to run or debug tests.
  • À présent, les séries de tests détectent automatiquement l’architecture de processeur définie dans les propriétés du projet.Test runs now auto-detect what processor architecture is set in the project properties.
  • 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.OSS UI test tools such as Selenium and Appium have gained momentum and have a strong community backing. É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.Because these frameworks have become industry standards, we deprecated Coded UI test for automated UI-driven functional testing. Visual Studio 2019 sera la dernière version de Visual Studio à proposer des fonctionnalités de test codé de l’interface utilisateur.Visual Studio 2019 will be the final version of Visual Studio with Coded UI test features. Nous vous recommandons d’utiliser Selenium pour tester des applications web et Appium avec WinAppDriver pour tester des applications de bureau et UWP.We recommend using Selenium for testing web-applications and Appium with WinAppDriver for testing desktop and UWP apps.
  • Visual Studio 2019 sera la dernière version de Visual Studio à proposer des fonctionnalités de test de charge.Visual Studio 2019 will be the last version of Visual Studio with load test features. 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.For customers requiring load testing tools, we recommend using alternate load testing tools such as Apache JMeter, Akamai CloudTest, 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.In Visual Studio 2019, some test window APIs that were previously marked public but were never officially documented have been removed. 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.They were marked deprecated in Visual Studio 2017 to give extension maintainers an early warning. À notre connaissance, très peu d’extensions avaient une dépendance sur ces API.To our knowledge, very few extensions have taken a dependency on these APIs. Ces API incluent IGroupByProvider, IGroupByProvider, KeyComparer, ISearchFilter, ISearchFilterToken, ISearchToken et SearchFilterTokenType.These APIs include IGroupByProvider, IGroupByProvider, KeyComparer, ISearchFilter, ISearchFilterToken, ISearchToken and SearchFilterTokenType. Si ce changement impacte votre extension, signalez votre problème sur le site de la Communauté des développeurs.If this change affects your extension, please let us know by submitting an issue on Developer Community.

Outils Kubernetes Visual StudioVisual Studio Kubernetes Tools

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.The Visual Studio Kubernetes Tools, which were previously available as a separate extension for Visual Studio 2017, are now integrated into the Azure development workload in Visual Studio 2019.

Ajout de la prise en charge de Kubernetes à un nouveau projetAdding Kubernetes support to a new project

Pour ajouter la prise en charge de Kubernetes à un nouveau projet, ouvrez Visual Studio et sélectionnez l’option Créer un projet.To add Kubernetes support to a new project, open Visual Studio and select the Create a new project option. Dans la fenêtre Créer un projet, recherchez Kubernetes et sélectionnez le modèle de projet Application conteneur pour Kubernetes.In the Create a new project window, search for Kubernetes and select the Container Application for Kubernetes project template.

Creating a Container Application for Kubernetes
Création d’une application conteneur pour KubernetesCreating a Container Application for Kubernetes

Cliquez sur Suivant et entrez un nom de projet, un emplacement et un nom de solution.Click Next and enter a project name, location, and solution name. Ensuite, cliquez sur Créer.Then, click Create. Sélectionnez le modèle d’application ASP.NET Core que vous souhaitez utiliser pour votre projet et cliquez sur OK.Select the ASP.NET Core application template you want to use for your project and click 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.Visual Studio will automatically create a Dockerfile and Helm chart that you can use to build and deploy your new application to a Kubernetes cluster. Vous pouvez modifier ces artefacts en fonction des besoins.You can modify these artifacts as needed.

Ajout de la prise en charge de Kubernetes à un projet existantAdding Kubernetes support to an existing project

Vous pouvez également ajouter la prise en charge de Kubernetes à une application ASP.NET Core existante.You can also add support for Kubernetes to an existing ASP.NET Core application. Pour cela, ouvrez le projet dans Visual Studio 2019.To do this, open the project in 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.In Solution Explorer, right click on the project, point to Add, and click Container Orchestrator Support.

Adding container orchestrator support
Ajout de la prise en charge d’orchestrateur de conteneursAdding container orchestrator support

Dans la boîte de dialogue Ajouter la prise en charge d’orchestrateur de conteneurs, choisissez Kubernetes/Helm et cliquez sur OK.In the Add Container Orchestrator Support dialog, choose Kubernetes/Helm and click 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.Visual Studio will automatically create a Dockerfile and Helm chart (in a folder named charts) that you can use to build and deploy your application to a Kubernetes cluster. Si l’un de ces artefacts est déjà en place, il n’est pas remplacé.If either of these artifacts are already in place, they will not be overwritten. Vous pouvez modifier ces artefacts en fonction des besoins.You can modify these artifacts as needed.

Création d’un point de terminaison accessible publiquementCreating a publicly accessible endpoint

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.When you add Kubernetes support to a new or existing project, Visual Studio will ask you if you want to create a publicly accessible endpoint for your application.

Publicly accessible endpoint prompt
Invite de point de terminaison accessible publiquementPublicly accessible endpoint prompt

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.If you click Yes, Visual Studio will configure the Helm chart for your application to create a Kubernetes ingress object when the application is deployed to a Kubernetes cluster. Vous pouvez changer cette option à tout moment en modifiant le graphique Helm.You can change this option at any time by modifying the Helm chart.

Débogage de votre application dans Azure Kubernetes ServiceDebugging your application in 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.Once you have added Kubernetes support to a new or existing project, you can easily build, run, and debug your application in a live Azure Kubernetes Service (AKS) cluster, using a feature called 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.This is useful for testing your project in the context of an actual Kubernetes cluster or for debugging a service that is part of a much larger application without having to replicate the entire application locally. Azure Dev Spaces propose également une fonctionnalité qui permet à votre équipe de développement de partager un cluster AKS.Azure Dev Spaces also includes functionality that allows your development team to share an AKS cluster. Pour plus d’informations sur Azure Dev Spaces, consultez la documentation Azure Dev Spaces.For more information on Azure Dev Spaces, see the Azure Dev Spaces documentation. Pour commencer, vérifiez qu’Azure Dev Spaces est sélectionné comme cible de lancement de débogage dans Visual Studio.To get started, ensure that Azure Dev Spaces is selected as the debug launch target in Visual Studio.

Selecting Azure Dev Spaces as debug launch target
Sélection d’Azure Dev Spaces comme cible de lancement de débogageSelecting Azure Dev Spaces as debug launch target

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.Before launching your project in Dev Spaces for the first time, configure the Azure subscription and AKS cluster that you wish to use. Sélectionnez aussi l’espace dans lequel vous souhaitez exécuter le projet.Also, select the space where you wish to run the project.

Configuring Azure Dev Spaces
Configuration d’Azure Dev SpacesConfiguring 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.Typically, your team runs the latest stable version of the entire application in the default space. Ensuite, vous exécutez la version du service sur laquelle vous travaillez dans un espace enfant de l’espace par défaut.Then, you run your version of the service you are working on in a child space of the default space. 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.There is now no need to run the other services in the child space; Dev Spaces automatically routes calls from your service to the stable versions of the services running in default. 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.For more information on how to set this up, see the team development tutorials in the Azure Dev Spaces documentation. 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.Once you have selected the correct subscription, cluster, and space, click OK to proceed with the Dev Spaces configuration. 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.If you select a cluster that does not already have an associated Dev Spaces controller, click OK in the following dialog box to create one automatically.

Enable Dev Spaces dialog
Boîte de dialogue Activer Dev SpacesEnable Dev Spaces dialog

La création du contrôleur prend environ deux minutes.Controller creation takes about 2 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.You can click on the Background Tasks button in the lower left corner of the Visual Studio window to see the status.

Azure Dev Spaces controller creation status via Background Tasks
État de la création du contrôleur Azure Dev Spaces par le biais de Tâches en arrière-planAzure Dev Spaces controller creation status via Background Tasks

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.Once you have a Dev Spaces controller ready to go, press F5 or click the Azure Dev Spaces debug button on the toolbar to debug your project in AKS.

Azure Dev Spaces debug button
Bouton de débogage Azure Dev SpacesAzure Dev Spaces debug button

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.Dev Spaces will synchronize your code to Azure, build a container image containing your code, and deploy it to your AKS cluster using the Helm chart defined in your project. 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.Visual Studio will open up a remote debug connection to the service running in the cluster so you can interact with it just as you would when debugging a service running locally.

Développement mobile avec XamarinMobile Development with 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.This release includes improvements to workload size and Android build performance and reliability, as well as enhancements for Xamarin.Android and Xamarin.Forms productivity.

  • 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.The Xamarin workload is now just 7.69GB, a 2x reduction from Visual Studio 2017 version 15.9 and a 3x improvement over version 15.7.
  • L’extension IntelliCode prend désormais en charge XAML dans Xamarin.Forms.The IntelliCode extension now supports Xamarin.Forms XAML.
Fichier > Nouveau projet File > New Project

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.We made performance improvements aimed at reducing the time it takes to create a new Xamarin project so you can start building your apps faster. 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.We also now include the NuGet packages used by the templates as part of the workload installation in order to reduce package restore time, especially in low bandwidth or offline situations. 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.These improvements reduce the time for a new Xamarin project to be completely loaded and restored by almost 50% in some cases.

New Xamarin project comparison gif
Création d’un projet Xamarin dans Visual Studio version 15.9 (à gauche) et Visual Studio 2019 (à droite)Creating a new Xamarin project in Visual Studio version 15.9 (left) and Visual Studio 2019 (right)
Indicateur de progression de génération Build progress indicator

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.You can now see more detailed build progress information when building your projects. 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.Clicking the background tasks icon in the bottom left corner during a build will display the current build target that is running. 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.This can be useful for determining if the build is still running but a target is taking a long time to complete.

Xamarin build progress indicator
Indicateur de progression de génération XamarinXamarin build progress indicator
Mode Aperçu de base du Générateur d’aperçu Xamarin.Forms Xamarin.Forms Previewer's Basic Preview mode

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 !You no longer have to build your project for the Xamarin.Forms XAML Previewer to show you a preview of your 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.If you have custom controls in your XAML file, you might need to build your project to preview those, or opt them into design time rendering.

Menu déroulant d’appareil du Générateur d’aperçu Xamarin.Forms Xamarin.Forms Previewer device drop-down

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.You can now swap between different Android and iOS devices to preview your Xamarin.Forms XAML on using our new device drop-down menu.

Xamarin.Forms Device Drop-Down
Menu déroulant d’appareil Xamarin.FormsXamarin.Forms Device Drop-Down
Panneau de propriétés Xamarin.Forms Xamarin.Forms Property Panel

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.You can now edit the most common attributes of Xamarin.Forms controls, cells, and layouts in a property panel and see those changes reflected immediately in your XAML.

Xamarin.Forms Property Panel
Panneau de propriétés de Xamarin.FormsXamarin.Forms Property Panel
Modèle de Shell Xamarin.Forms Xamarin.Forms Shell template

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.We updated the Xamarin.Forms templates to use the latest Xamarin.Forms release and also added a new template option for a Xamarin.Forms Shell app. 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.Shell aims to reduce the complexity of apps while increasing developer productivity and focusing on rendering speed and memory consumption. Ce modèle vous donne une application Shell amorcée pour Android et iOS.This template gives you a bootstrapped Shell app for Android and iOS.

Performances et fiabilité des builds Android Android Build performance and reliability

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.In Visual Studio 2017 version 15.9 and Visual Studio for Mac 7.7, we made initial build performance and build correctness improvements. 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.In Visual Studio 2019 and Visual Studio for Mac 7.8, we made building and deploying even faster.

Android Build Performance
Générer une build Android n’a jamais été aussi rapideAndroid Build Now Faster than Grabbing a Cup of Coffee
  • Vous allez maintenant utiliser la nouvelle génération d’outils de packaging Android.You will now make use of Android's next generation packaging tooling. Pour activer cette fonctionnalité, ajoutez un indicateur MSBuild dans le .csproj de votre projet :To enable this feature, add an MSBuild flag in your project's .csproj:
    • aapt2 divise le package Android en deux étapes : compiler et lier.aapt2 divides Android packaging into two steps: Compile and Link. Cela améliore les performances des builds incrémentielles et fournit des rapports sur les erreurs antérieures.This improves performance for incremental builds and provides earlier error reporting. Par exemple, si vous faites des modifications dans un seul fichier, vous n’avez que ce fichier à recompiler.For example, if there are changes in a single file, you only need to recompile that file. <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.By enabling this tool in your projects, you enable enhanced performance at both build time and runtime. Pour plus d’informations sur ces propriétés, consultez notre documentation sur le processus de génération dans Xamarin.Android.For more details on these properties, see our documentation on the Build Process in Xamarin.Android.
Améliorations de l’émulateur Android Android Emulator improvements

Dans Visual Studio 2019, les images de l’émulateur Android sont plus faciles à créer.In Visual Studio 2019, Android emulator images are easier to create. 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.We've also continued to work with the Windows team in the Windows 10 October 2018 Update, version 1809, to improve the performance of the Android emulator when running on Hyper-V.

  • Les nouveaux utilisateurs peuvent créer leur première image simplement en appuyant sur l’icône d’exécution.New users can create their first image by simply pressing the run icon.
  • 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.Our emulator acquisition experience automatically determines the best configuration for your setup and takes advantage of hardware acceleration (with Intel HAXM or Hyper-V) and quick boot by default.
  • 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.When you want to create another image, you can select Create Android Emulator from the dropdown to open the Android Device Manager.
Réduisez la durée des générations grâce aux améliorations apportées à la génération dans Xamarin.Android Speed up your build times with our improvements for build in Xamarin.Android

Nous avons publié un ensemble d’améliorations des performances de génération initiales.We have released a set of initial build performance improvements. À ce jour, Xamarin.Android 9.1.1+ offre de nettes améliorations de performances par rapport à la version précédente.As of today, Xamarin.Android 9.1.1+ includes significant build performance improvements in comparison to the previous release. Pour plus d’informations, consultez Comparaison des performances de build entre Xamarin.Android 15.9 et 16.0.Check out our Xamarin.Android 15.9 vs. 16.0 build performance comparison for more details.

Déploiement rapide amélioré pour Xamarin.Android Enhanced Fast Deployment for 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.Fast Deployment has up until now provided faster incremental deployment times by skipping over rebuilding or redeploying the Android package (.apk file) in scenarios where no changes have been made to any assets, resources, shared native libraries packaged within the app, or user-defined classes that inherit from 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.Enhanced Fast Deployment expands support for fast deployment to cover both shared native libraries and classes that inherit from 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.Fast deployment builds that use these new enhancements will only need to generate a new .apk file in a limited number of scenarios, such as when the AndroidManifest.xml file changes due to addition of a new Android.App.Application or Activity subclass. Ces améliorations ne sont pas encore activées par défaut dans la préversion actuelle.These enhancements are not yet enabled by default in the current preview. Pour les activer, affectez la valeur Assemblies:Dexes à la propriété MSBuild $(AndroidFastDeploymentType) dans votre fichier .csproj :To enable them, set the $(AndroidFastDeploymentType) MSBuild property to Assemblies:Dexes in your .csproj file:

<PropertyGroup> 
  <AndroidFastDeploymentType>Assemblies:Dexes</AndroidFastDeploymentType> 
</PropertyGroup>
Prise en charge du compilateur dex (d8) et du réducteur de code (r8) de nouvelle génération dans Xamarin.Android Next-generation Dex Compiler(d8) and Code Shrinker(r8) support in 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).Xamarin.Android now supports the latest Android dex compiler(d8) and code shrinker (r8). Pour activer ces fonctionnalités, affectez respectivement les valeurs d8 et r8 aux propriétés MSBuild $(AndroidDexTool) et $(AndroidLinkTool) dans votre fichier .csprojTo enable these features, set the $(AndroidDexTool) and $(AndroidLinkTool) MSBuild property to d8 and r8 respectfully in your .csproj file

  • 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.d8 is a next-generation dex compiler that runs faster and produces smaller .dex files with better runtime performance.
<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.r8 is a new tool for shrinking and minification that converts Java bytecode to optimized dex code that replaces the need for ProGuard.
<PropertyGroup> 
  <AndroidLinkTool>r8</AndroidLinkTool>
</PropertyGroup>

Pour plus d’informations sur d8 et r8, consultez notre documentation.For more details on d8 and r8, check out our documentation.

Améliorations apportées à Xamarin.Android Designer Xamarin.Android Designer enhancements

Nous avons apporté de nombreuses améliorations de productivité pour les interactions en mode Fractionné.We have made a number of productivity enhancements to the interactions in Split View.

  • 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.Drag and drop directly from the toolbox to the source editor to help quickly scaffold your Android layouts.
Android Designer Toolbox to Source Editor
  • Sélectionnez les éléments directement à partir de l’étendue de leur définition XML dans l’éditeur de code source.Select elements directly from their XML definition span in the source editor. 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.We implemented this by synchronizing the caret position with the corresponding Android view, allowing you to quickly access an element's properties in the property panel right from the editor.
Android Designer Source Editor to Property Editor
  • Affichez un aperçu intraligne des couleurs dans votre code XML afin de voir les couleurs utilisées dans vos contrôles.Use an inline color preview to your XML code so you can see what colors are being used in your controls.
Android Designer Color Preview
  • 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.Use our quick info feature by hovering over a value to find out more about it, such as where it's defined or what the hexadecimal value for the color is.
Android Designer Quick Info
Info express en actionQuick Info in Action
Améliorations de Xamarin.Android Designer avec prise en charge initiale des dispositions de contraintes Xamarin.Android Designer improvements with initial support for constraint layouts

Nous nous sommes donné comme mission d’améliorer la vitesse de démarrage d’Android Designer.We’ve begun an effort to improve startup speed of the Android Designer. Dans le cadre de cet effort, nous avons également amélioré les messages fournis par le concepteur pendant son chargement.As part of this effort, we have also improved the messaging that the designer provides while it is loading.

Android Designer Output

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.Alongside these improvements, the Android Designer now natively supports Android Pie (9.0) and provides autocompletion for ConstraintLayout attributes.

Bénéficiez de meilleures optimisations de commentaires et XML IntelliSense avec Xamarin.Android Designer Get better XML IntelliSense and Commenting optimizations with the 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.When using IntelliSense to add a widget to a layout, a full snippet experience is now provided so that required attributes can be supplied from the start. Nous avons ajouté l’ajout intelligent de marques de commentaires et l’annulation intelligente des marques de commentaires pour les dispositions XML Android.We have added smart commenting and uncommenting for Android XML layouts.

Augmentez votre productivité à l’aide d’Atteindre la définition et utilisez XML IntelliSense dans les fichiers de ressources Android et dans AndroidManifest.xml Be more productive by using Go-To-Definition and use XML IntelliSense within Android resource files and 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.You can now Ctrl + Click on resource URLs to navigate to the file or line where they are defined.

Android Designer Go-To-Definition

IntelliSense et la saisie semi-automatique sont maintenant pris en charge pour des fichiers XML Android autres que les dispositions (couleurs, chaînes, ressources Drawable, menu, manifeste Android, et ainsi de suite).IntelliSense/Autocompletion is now supported for other Android XML files other than layouts (colors, strings, drawables, menu, Android manifest, etc.).

Plateforme Windows universelleUniversal Windows Platform

  • L’extension IntelliCode prend désormais en charge XAML.The IntelliCode extension now supports 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.To reduce Visual Studio setup complexity and size, Windows Phone emulators have been removed from Visual Studio installation. Vous devez maintenant télécharger les émulateurs manuellement.You will now need to download the emulators manually.
  • 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.XAML design time tooling for UWP apps targeting Windows 10 SDKs before the Windows 10 Fall Creators Update (build 16299) has been removed. Reciblez vos applications vers Windows 10 version 1709 ou ultérieure pour utiliser le concepteur XAML, ou utilisez l’éditeur XAML.Retarget your applications to Windows 10 version 1709 or higher to use the XAML Designer, or use the XAML editor.
  • Les projets de test UWP utilisant project.json pour définir les dépendances NuGet ne sont plus pris en charge.UWP test projects using project.json to define NuGet dependencies are no longer supported. Vous devez mettre à niveau ces projets pour utiliser le nouveau format PackageReference.You must upgrade your project to use the new PackageReference format.
  • Les applications JavaScript UWP ne sont plus prises en charge dans Visual Studio 2019.UWP JavaScript apps are no longer supported in Visual Studio 2019. Vous ne pouvez donc plus créer ni ouvrir de projets JavaScript UWP (fichiers avec l’extension jsproj).You cannot create or open JavaScript UWP projects (files with 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.You can learn more via our documentation on creating Progressive Web Apps (PWAs) that run well on 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.You can continue to attach to JavaScript UWP apps as before, however the JavaScript profiling tools (Network ,CPU and Memory Profiler) are no longer available in Visual Studio 2019.

Mises à jour des modèles des outils OfficeOffice Tools Template Updates

Dans Visual Studio 2019, nous avons apporté quelques changements aux modèles Office, SharePoint et VSTO.In Visual Studio 2019, we made a few changes to the Office, SharePoint, and VSTO templates.

  • Les modèles SharePoint 2019 qui ont été ajoutés dans Visual Studio 2017 version 15.9 sont également disponibles dans Visual Studio 2019.The SharePoint 2019 templates that were added in Visual Studio 2017 15.9 are also available in 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.We have removed support for SharePoint Sequential Workflow or State Machine Workflows. 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.While you will not be able to create or open these workflows in Visual Studio 2019, you can continue to edit them in previous releases of Visual Studio.
  • Les modèles Office 2010 ne sont plus disponibles.Office 2010 templates will no longer be available. Toutefois, vous pouvez toujours ouvrir des projets Office 2010 existants dans Visual Studio 2019.However, you can still open existing Office 2010 projects in 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.The Office 2013 and 2016 templates have been renamed to reflect that they support Office 2013 and above.

Team Explorer et Azure DevOpsTeam Explorer and 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.We are releasing a new, streamlined, developer-centric experience when connecting Team Explorer to an Azure DevOps project.

  • 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é.Focus on relevant work items by filtering and pivoting your view based on work items assigned to you, ones that you're following, ones where you're mentioned in the discussion, and ones based on your activity.

    • 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.Within each view, you can create a work item inline, perform simple inline edits, mark a work item as complete, and associate a work item to pending changes.
  • 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.Create a local branch from a work item which will automatically relate the work item to the changes made to that local branch. Il s’agit de l’expérience par défaut.This is the default experience. Si vous souhaitez basculer vers l’expérience héritée, vous pouvez activer l’expérience Éléments de travail dans Visual Studio.Should you want to switch to the legacy experience, you can by setting the Work Items experience in 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.Note that this new experience is only true for Git repos. The new experience for TFVC repos will available in a following update.

    Azure DevOps Work Item Hub
    Hub d’éléments de travail Azure DevOpsAzure DevOps Work Item Hub
  • Recherchez des éléments de travail en spécifiant #mention dans le message de validation des modifications en attente.Search for work items when doing a #mention in the pending changes commit message. Pour plus d’informations, consultez Afficher et ajouter des éléments de travail à l’aide de la page Éléments de travail.For more details, see the View and add work items using the Work Items page.

    Azure DevOps #mentions
    #mentions dans les éléments de travail Azure DevOpsAzure DevOps #mentions
  • 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.Support for Microsoft Project has been removed from the Team Foundation Server Office Integration 2019 plug-in for Visual Studio 2019 due to a low adoption rate in Azure DevOps. Vous devez désormais exporter vos éléments de travail dans Excel et les coller manuellement dans Project.You will now need to export your work items to Excel and manually paste them into 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.Support for PowerPoint has been removed from the Team Foundation Server Office Integration 2019 plug-in for 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.However, users can still create storyboards in PowerPoint and link them manually to work items in Azure DevOps.

Application Insights et HockeyAppApplication Insights and 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.The Application Insights Trends window has been removed in Visual Studio 2019 in favor of alternatives that are more feature-rich. À 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.Instead, you can use the Application Insights Search window in Visual Studio or the rich set of diagnostics tools in Application Insights in the Azure portal.
  • Les Assistants permettant d’ajouter le SDK HockeyApp et de créer des distributions bêta ont été supprimés.The wizards for adding the HockeyApp SDK and creating new beta distributions have been removed. Nous vous recommandons d’utiliser à la place Visual Studio App Center, le successeur d’HockeyApp.We instead recommend using Visual Studio App Center, the successor to HockeyApp. Vous pouvez continuer à utiliser HockeyApp normalement, mais sans ces raccourcis dans Visual Studio.You can still use HockeyApp normally, except without these shortcuts in Visual Studio. Pour en savoir plus sur HockeyApp, consultez notre page de support.If you would like to learn more about HockeyApp, check out our support page.

Release Notes Icon Problèmes résolus dans Visual Studio 2019 RCIssues fixed in Visual Studio 2019 RC

Dernière mise à jour : 26 avril 2019most recently updated on April 26, 2019


Problèmes connusKnown Issues

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.See all existing known issues and available workarounds in Visual Studio 2019 version 16.0 by following the below link.

Visual Studio 2019 Known Issues


CommentairesFeedback

Nous aimerions connaître votre opinion !We would love to hear from you! 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.For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. La clé publique du signataire doit être fournie à la classeThe Feedback Icon icône se trouve en haut à droite.icon is located in the upper right-hand corner. 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.You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. Vous pouvez également obtenir une aide gratuite pour l’installation via notre support Live Chat.You can also get free installation help through our Live Chat support.


BlogsBlogs

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.Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.

Developer Tools Blogs


Historique des notes de publication de Visual Studio 2019Visual Studio 2019 Release Notes History

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.For more information relating to past versions of Visual Studio 2019, see the Visual Studio 2019 Release Notes History page.


Haut de page
Top of Page