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.1.6Visual Studio 2019 version 16.1.6 New release icon

Date de publication : 9 juillet 2019released July 9, 2019

Récapitulatif des problèmes résolus dans Visual Studio 2019 version 16.1.6Summary of issues addressed in Visual Studio 2019 version 16.1.6

Avis de sécuritéSecurity Advisory Notices

CVE-2019-1077 Vulnérabilité de la mise à jour automatique de l’extension Visual StudioCVE-2019-1077 Visual Studio Extension Auto Update Vulnerability

Une vulnérabilité d’élévation de privilèges apparaît quand le processus de mise à jour automatique de l’extension Visual Studio n’effectue pas correctement certaines opérations de fichier.An elevation of privilege vulnerability exists when the Visual Studio Extension auto-update process 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é résout cette vulnérabilité en sécurisant les emplacements où la mise à jour automatique de l’extension Visual Studio effectue des opérations de fichier.The security update addresses the vulnerability by securing locations the Visual Studio Extension auto-update performs file operations in.

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

Il existe une vulnérabilité d’usurpation d’identité dans ASP.NET Core pouvant aboutir à une redirection ouverte.A spoofing vulnerability exists in ASP.NET Core that could lead to an open redirect. Un attaquant qui parvient à exploiter la vulnérabilité peut rediriger un utilisateur ciblé vers un site web malveillant.An attacker who successfully exploited the vulnerability could redirect a targeted user to a malicious website. Pour exploiter la vulnérabilité, l’attaquant peut envoyer un lien avec une URL spécialement créée et convaincre l’utilisateur de cliquer sur le lien.To exploit the vulnerability, an attacker could send a link that has a specially crafted URL and convince the user to click the link.

La mise à jour de sécurité résout la vulnérabilité en corrigeant la façon dont ASP.NET Core analyse les URL.The security update addresses the vulnerability by correcting how ASP.NET Core parses URLs. Pour plus d’informations, consultez les notes de publication de .NET Core.Details can be found in the .NET Core release notes.

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

Un fichier XOML faisant référence à certains types peut entraîner l’exécution de code aléatoire quand le fichier XOML est ouvert dans Visual Studio.A XOML file referencing certain types could cause random code to be executed when the XOML file is opened in Visual Studio. Il existe désormais une restriction sur les types qui peuvent être utilisés dans les fichiers XOML.There is now a restriction on what types are allowed to be used in XOML files. Si un fichier XOML contenant l’un des types récemment non autorisés est ouvert, un message s’affiche, expliquant que le type n’est pas autorisé.If a XOML file containing one of the newly unauthorized types is opened, a message is displayed explaining that the type is unauthorized.

Pour plus d’informations, voir https://support.microsoft.com/en-us/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.For further information, please refer to https://support.microsoft.com/en-us/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.


Release Notes Icon Visual Studio 2019 version 16.1.5Visual Studio 2019 version 16.1.5

Publication : 2 juillet 2019released July 2, 2019

Récapitulatif des problèmes résolus dans Visual Studio 2019 version 16.1.5Summary of issues addressed in Visual Studio 2019 version 16.1.5


Release Notes Icon Visual Studio 2019 version 16.1.4Visual Studio 2019 version 16.1.4

Publication : 25 juin 2019released June 25, 2019

Récapitulatif des problèmes résolus dans Visual Studio 2019 version 16.1.4Summary of issues addressed in Visual Studio 2019 version 16.1.4


Release Notes Icon Visual Studio 2019 version 16.1.3Visual Studio 2019 version 16.1.3

Publication : 11 juin 2019released June 11, 2019

Récapitulatif des problèmes résolus dans Visual Studio 2019 version 16.1.3Summary of issues addressed in Visual Studio 2019 version 16.1.3


Release Notes Icon Visual Studio 2019 version 16.1.2Visual Studio 2019 version 16.1.2

Publiée le 4 juin 2019released June 4, 2019

Résumé des problèmes résolus dans Visual Studio 2019 version 16.1.2Summary of issues addressed in Visual Studio 2019 version 16.1.2


Release Notes Icon Visual Studio 2019 version 16.1.1Visual Studio 2019 version 16.1.1

Publication : 24 mai 2019released May 24, 2019

Résumé des problèmes résolus dans Visual Studio 2019 version 16.1.1Summary of Issues addressed in Visual Studio 2019 version 16.1.1


Release Notes Icon Visual Studio 2019 version 16.1Visual Studio 2019 version 16.1

Publication : 21 mai 2019released May 21, 2019

Résumé des nouveautés de Visual Studio 2019 version 16.1Summary of What's New in Visual Studio 2019 version 16.1

IDEIDE

  • Visual Studio IntelliCode, maintenant en disponibilité générale, est installé avec toutes les charges de travail qui prennent en charge C#, C++, TypeScript/JavaScript ou XAML.Visual Studio IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or XAML.
  • Ajout de la prise en charge de la reconnaissance du type d’écran.Added Per-Monitor Awareness support.
  • De nouveaux correctifs de code sont disponibles pour C#.New codefixes are available for C#.
  • Ajout de la fonctionnalité « Utilisés le plus récemment » à la recherche Visual Studio.Most Recently Used has been added to Visual Studio Search.

DébogueurDebugger

  • Des améliorations de l’authentification Source Link ont été implémentées.Source Link authentication improvements have been implemented.
  • Ajout du serveur de symboles nuget.org à la liste des serveurs de symboles par défaut.Added nuget.org symbol server to the list of default symbol servers.
  • L’aperçu du débogage TTD (débogage par voyage dans le temps) inclut désormais la prise en charge de la progression pas à pas dans les exceptions.Time Travel Debugging preview now includes exception stepping support.

ExtensibilitéExtensibility

  • Suppression de la nécessité du fichier .resx dans les projets VSIX (mise à jour des outils de build).Removed the need for .resx file in VSIX projects (BuildTools update).
  • Le modèle Projet VSIX utilise désormais la nouvelle version du SDK.VSIX Project template now uses the new SDK version.

PerformancesPerformance

  • Implémentation d’une expérience utilisateur d’optimisation pour améliorer le temps de chargement des très grandes solutions.User optimization experience to improve the solution load time of very large solutions.
  • Les créateurs de modèle peuvent ajouter des balises personnalisées à leurs modèles.Template authors can add custom tags to their templates.
  • Prise en charge de CodeLens pour l’interface utilisateur personnalisée.CodeLens support for custom UI.
  • Publication de mises à jour pour l’implémentation du protocole de serveur de langage.Provided updates to Language Server Protocol implementation.
  • Mise à jour du comportement du basculement entre les solutions, les dossiers et les autres vues.Updated behavior for switching between solutions, folders, and other views.

C++C++

F#F#

  • Publication d’améliorations des performances et de différents correctifs de bogues pour F# et les outils F#.Released performance improvements and a bulk of bug fixes for F# and F# tooling.

.NET.NET

  • Les nouvelles fonctionnalités de Productivité .NET incluent le nettoyage du code en un seul clic sur les projets et les solutions, un nouveau raccourci clavier d’activation/de désactivation du commentaire de bloc, la refactorisation pour déplacer des types vers d’autres espaces de noms.New .NET productivity features include one-click code cleanup on projects and solutions, a new toggle block comment keyboard shortcut, refactoring to move types to other namespaces.
  • Les utilisateurs peuvent maintenant cloner le code à partir d’un URI SSH sur l’écran de clonage de la fenêtre de démarrage.Users can now clone code from an SSH URI through the clone screen in the start window.
  • Ajouts à la productivité .NET, notamment : complétion IntelliSense pour les types non importés, activation/désactivation des marques de commentaire sur une seule ligne, exportation des styles de noms dans EditorConfig et nouveau paramètre de style de code pour privilégier les instructions using à l’intérieur/l’extérieur des espaces de noms.Additions to .NET Productivity include intellisense completion for unimported types, toggling single-line comment/uncomment, exporting naming styles to editorconfig, and a new code style setting for preferring usings inside/outside namspaces.
  • Implémentation d’ajouts aux outils du SDK .NET en matière de prise en charge des projets Windows Forms et WPF pour .NET Core 3.0, ainsi que des correctifs de bogues et des améliorations des performances.Implemented .NET SDK tooling additions around supporting WinForms and WPF projects for .NET Core 3.0 along with bug fixes and performance improvements.
  • Publication du SDK Visual Studio v16.0 sur NuGet.Visual Studio SDK v16.0 released to NuGet.
  • Publication d’une préversion du Concepteur XAML pour le développement WPF .NET Core 3.0.Released a preview of the XAML Designer for .NET Core 3.0 WPF development.

XamarinXamarin

Principaux problèmes résolus dans Visual Studio 2019 version 16.1Top Issues Fixed in Visual Studio 2019 version 16.1

Détail des nouveautés de Visual Studio 2019 version 16.1Details of What's New in Visual Studio 2019 version 16.1

  • IntelliCode, maintenant en disponibilité générale, est installé avec toutes les charges de travail qui prennent en charge C#, C++, TypeScript/JavaScript ou XAML.IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or XAML.
  • Les fonctionnalités IntelliCode en préversion (modèles personnalisés, prise en charge C++/ TS/JS et inférence EditorConfig) sont désactivées par défaut.Preview IntelliCode features - Custom Models, C++/TS/JS support, and Editorconfig inference - are disabled by default. Pour les activer, accédez à Outils > Options > IntelliCode.To enable them, go to Tools > Options > IntelliCode.
  • Suppression du modèle EditorConfig (IntelliCode) de l’Assistant Nouvel élément.Removed the Editorconfig (IntelliCode) template from the New Item Wizard. Pour créer une inférence EditorConfig, cliquez avec le bouton droit sur l’emplacement souhaité dans l’Explorateur de solutions et choisissez Ajouter > Nouvel EditorConfig (IntelliCode) .To create an inferred Editorconfig, right-click on the desired location in Solution Explorer and choose Add > New EditorConfig (IntelliCode).
  • Utilisez la fenêtre de démarrage pour cloner le code d’un référentiel en ligne via SSH.Use the start window to clone code from an online repository through SSH.
Clone with SSH on start window
Cloner avec SSH sur la fenêtre de démarrageClone with SSH on start window
  • Visual Studio IntelliCode est installé par défaut lors de l’installation d’une charge de travail prenant en charge C#, XAML ou C++.Visual Studio IntelliCode is installed by default when you install a workload that supports C#, XAML, or C++.
    • Les modèles de base C# et XAML sont activés par défaut.C# and XAML base models will be on by default.
    • Les fonctionnalités d’évaluation, comme l’entraînement de modèles personnalisés et la complétion d’arguments, peuvent être activées par le biais d’Outils > Options > IntelliCode.Preview features, such as custom model training and argument completion, can be enabled via Tools > Options > IntelliCode.
  • Ajout du support de la prise en charge par moniteurAdded Per-Monitor Awareness support
  • Nouveaux correctifs de code disponibles pour C#.New codefixes available for C#.
  • Ajout du support de la prise en charge par moniteur pour la fenêtre PropertyBrowser basée sur WinForms de Visual Studio.Added Per-Monitor Awareness support for WinForms based PropertyBrowser window of Visual Studio. Exige que la version RTM de .NET Framework 4.8 soit installée sur l’ordinateur.Requires .NET Framework 4.8 RTM version installed on the machine.
  • Source Link peut maintenant utiliser l’authentification Windows pour prendre en charge le contrôle de code source TFS local.Source Link can now use Windows Authentication to support on-premises TFS Source Control.
  • Ajout du serveur de symboles nuget.org à la liste des serveurs de symboles par défautAdded nuget.org symbol server to the list of default symbol servers

ProjetProject

  • Le bouton permettant de basculer vers la vue Explorateur de solutions affiche désormais systématiquement un menu déroulant de toutes les vues possibles.The button for switching the Solution Explorer view will now consistently shows a dropdown menu of all possible views.
Solution switching
Basculement entre les vues des solutionsSolution view switching
  • Amélioration du temps de chargement pour les très grandes solutions.Improved the loading time for very large solutions. L’amélioration varie en fonction de la taille des solutions.The improvement varies based on the size of the solutions.

  • Suppression de la boîte de dialogue Convertir sous Fichier > Convertir.Removed the Convert dialog under File > Convert. Cette fonctionnalité a été dépréciée précédemment dans Visual Studio 2015.This feature was previously deprecated in Visual Studio 2015.

  • Mise à jour des règles de validation pour les schémas task.vs.json et launch.vs.json, et ajout de descriptions des propriétés.Updated the validation rules for the task.vs.json and launch.vs.json schemas, and added descriptions for the properties.

  • Ajout de la prise en charge du débogage à distance Linux à l’aide d’un programme personnalisé par le biais de launch.vs.json.Added support for Linux remote debugging using a custom program via launch.vs.json.

ExtensibilitéExtensibility

  • Les utilisateurs peuvent maintenant utiliser la dernière version de Microsoft.VisualStudio.SDK pour cibler Visual Studio 2019 dans vos extensions.Users can now use the latest version of the Microsoft.VisualStudio.SDK to target Visual Studio 2019 in your extensions. N’oubliez pas d’utiliser uniquement cette version du SDK si la version minimale de Visual Studio prise en charge est 16.0.Remember to only use this version of the SDK if the lowest supported version of Visual Studio is 16.0.
  • La création de projets VSIX contient désormais la version 16.0 du package NuGet Microsoft.VisualStudio.SDK.Creating new VSIX projects will now contain the 16.0 version of the the Microsoft.VisualStudio.SDK NuGet package.
  • Les utilisateurs peuvent maintenant ajouter des balises à vos modèles de projet pour activer la catégorisation et le filtrage dans la boîte de dialogue Nouveau projet de Visual Studio 2019.Users can now add tags to your project templates to enable categorization and filtering in the Visual Studio 2019 New Project Dialog. Les utilisateurs peuvent choisir entre les balises prédéfinies ou leurs propres balises de langage, de plateforme et de type de projet personnalisées.Users can also choose from the built-in tags or their own custom language, platform, and project type tags.
Template tagging
Marquage des modèlesTemplate tagging
  • Les extensions CodeLens peuvent maintenant afficher du contenu d’interface utilisateur arbitraire dans leur fenêtre contextuelle des détails CodeLens.CodeLens extensions can now display arbitrary UI content in their CodeLens details popup.

  • Mise à jour du protocole de serveur de langage avec :Updated Language Server Protocol with:

    • La prise en charge des mémoires tampons prévues afin d’activer des fournisseurs de services en couche (LSP) pour les différences inline et les fichiers Razor dans LiveShare.Support for projected buffers to enable LSP for inline diff, and Razor files in LiveShare.
    • La prise en charge des diagnostics inutiles.Support for unnecessary diagnostics.
    • La prise en charge de textDocument/typeDefinition.Support for textDocument/typeDefinition.
    • La prise en charge de textDocument/foldingRange (plan).Support for textDocument/foldingRange (outlining).
  • Suppression de la nécessité du fichier .resx dans les projets VSIX (mise à jour des outils de build)Removed the need for .resx file in VSIX projects (BuildTools update)

  • Le package NuGet Microsoft.VSSDK.BuildTools fournit désormais un fichier .resx vide dans le cadre de la build s’il n’existe aucun .resx avec la propriété MergeWithCTO.The Microsoft.VSSDK.BuildTools NuGet package will now provide an empty .resx file as part of the build if no .resx with MergeWithCTO property exist. La plupart des extensions n’utilisent pas de fichier .resx ou n’en ont pas besoin pour fusionner. Ainsi, le projet reste plus épuré.Most extensions don't use or need a .resx file to merge, so this will keep the project cleaner.

  • Les changements apportés à la PMA (per-monitor awareness) risquent d’affecter certaines extensions.Per-monitor awareness changes might affect some extensions. Découvrez plus en détail la prise en charge de la PMA pour les extendeurs Visual Studio.Learn more about Per-Monitor Awareness support for Visual Studio extenders.

ÉditeurEditor

  • En cas de focus, la recherche de Visual Studio affiche désormais les trois dernières actions utilisées appelées par le biais de la recherche Visual Studio, comme indiqué dans cette exemple de maquette.Visual Studio Search will now display on focus the three most recently used actions invoked through Visual Studio Search, as shown in this sample mockup. (Remarque : Les icônes et les éléments de ligne spécifiques n’ont pas été entièrement mis à jour dans cette maquette.)
    (Note: icons and specific line items have not been fully updated in this mock-up.)
    Visual Studio Search
    Maquette de la recherche Visual StudioMock-up of Visual Studio Search

C++C++

  • Utilisez l’installation locale du sous-système Windows pour Linux (WSL) avec C++ en mode natif dans Visual Studio sans configuration supplémentaire ni connexion SSH.Use local Windows Subsystem for Linux (WSL) installation with C++ natively in Visual Studio without additional configuration or SSH connection.
Windows Subsystem for Linux
Sous-système Windows pour LinuxWindows Subsystem for Linux
  • AddressSanitizer est maintenant intégré à Visual Studio pour les projets Linux et WSL.AddressSanitizer is now integrated into Visual Studio for Linux projects and WSL.
ASan integration
Intégration AddressSanitizerASan integration
  • Les utilisateurs peuvent maintenant séparer les machines de build distantes des machines de débogage distantes sur Linux, dans les projets MSBuild et CMake.Users can now separate remote build machines from remote debug machines when targeting Linux in both MSBuild and CMake projects.
  • Les info-bulles Info express contiennent désormais un lien permettant de rechercher de la documentation en ligne pour en savoir plus sur la construction du code.Quick Info tooltips now contain a link to search for online docs to learn more about the code construct. Si le code est souligné en rouge, ce lien recherche l’erreur en ligne.In the case of red-squiggled code, the link in Quick Info will search for the error online.
  • Le code des info-bulles Info express est à présent de la même couleur que dans l’éditeur.Code within Quick Info tooltips is now colorized to reflect its colorization in the editor.
Colorized code in Quick Info tooltips
Code coloré dans les info-bulles Info expressColorized code in Quick Info tooltips
New Code Analysis quick fixes
Nouveaux correctifs rapides de l’analyse du codeNew Code Analysis quick fixes
  • Améliorations apportées à l’Éditeur de paramètres CMake, notamment la prise en charge du sous-système Windows pour Linux (WSL) et les configurations de caches existants, les changements apportés aux racines de génération et d’installation par défaut, ainsi que la prise en charge de variables d’environnement dans les configurations CMake Linux.Improvements to the CMake Settings Editor, including support for Windows Subsystem for Linux (WSL) and configurations from existing caches, changes to the default build and install roots, and support for environment variables in Linux CMake configurations.
Improvements to the CMake Settings Editor
Améliorations apportées à l’éditeur de paramètres CMakeImprovements to the CMake Settings Editor
  • L’amélioration de la journalisation des connexions à distance facilite le diagnostic des problèmes liés au développement multiplateforme.Improved logging for remote connections makes it easier to diagnose issues with cross-platform development.
Improved logging for remote connections
Amélioration de la journalisation pour les connexions à distanceImproved logging for remote connections
  • Vous pouvez désormais séparer votre ordinateur de build à distance de votre ordinateur de débogage à distance en cas de ciblage de Linux (spécifique aux projets MSBuild ; bientôt disponible pour CMake).You can now separate your remote build machine from your remote debug machine when targeting Linux (specific to MSBuild projects, coming soon for CMake).
  • La barre de modèle peut remplir le menu déroulant à partir des instanciations de ce modèle dans votre codebase.The Template Bar can populate the dropdown menu based on instantiations of that template in your codebase.
New Template Bar dropdown menu
Nouveau menu déroulant Barre de modèlesNew Template Bar dropdown menu
  • IntelliCode C++ est désormais fourni par défaut et peut être activé sous Outils > Options > IntelliCode > Général.C++ IntelliCode now ships in-box and can be enabled under Tools > Options > IntelliCode > General. Cette version d’IntelliCode offre une meilleure précision et inclut la prise en charge de fonctions gratuites.This version of IntelliCode has improved accuracy and includes support for free-functions.
  • L’intégration de CMake prend maintenant en charge la chaîne d’outils Clang/LLVM pour les projets ciblant Windows et/ou Linux.CMake integration now supports the Clang/LLVM toolchain for projects targeting Windows and/or Linux. Vous pouvez désormais générer, modifier et déboguer des projets CMake qui utilisent Clang, MSVC ou GCC.You can now build, edit, and debug CMake projects that use either Clang, MSVC, or GCC.
CMake integration supports the Clang/LLVM toolchain
L’intégration de CMake prend en charge la chaîne d’outils Clang/LLVMCMake integration supports the Clang/LLVM toolchain
  • Ampoules signalant les #include manquant qui peuvent être installés par vcpkg et saisie semi-automatique des packages disponibles pour la directive find_package CMake.Lightbulbs for missing #includes that can be installed by vcpkg, and autocompletion of available packages for the CMake find_package directive.
Autocompletion of available packages
Autocomplétion des packages disponiblesAutocompletion of available packages
  • Mise à jour de la version de CMake qui est fournie avec Visual Studio vers la version 3.14.Updated the CMake version that ships with Visual Studio to 3.14. Cette version ajoute la prise en charge intégrée des générateurs MSBuild ciblant les projets Visual Studio 2019 ainsi que les API d’intégration de l’IDE basées sur des fichiers.This version adds built-in support for MSBuild generators targeting Visual Studio 2019 projects as well as file-based IDE integration APIs.

  • Les pages de propriétés Général pour les projets C++ ont été modifiées, en présentant certaines options sous une nouvelle page Avancé.The General Property Pages for C++ projects has been revised, splitting out some options under a new Advanced page. La page Avancé inclut également des propriétés supplémentaires pour l’architecture d’ensemble d’outils, les bibliothèques de débogage, la version mineure de l’ensemble d’outils MSVC et les builds Unity (jumbo) préférées.The Advanced page also includes additional properties for preferred toolset architecture, debug libraries, the MSVC toolset minor version, and Unity (jumbo) builds.

  • Les 20 fonctionnalités d’évaluation C++ suivantes ont été ajoutées à notre implémentation de la bibliothèque standard C++, disponible sous /std:c++latest :The following C++20 preview features have been added to our implementation of the C++ Standard Library, available under /std:c++latest:

    • starts_with() et ends_with() pour basic_string/basic_string_view.starts_with() and ends_with() for basic_string/basic_string_view.
    • contains() pour les conteneurs associatifs.contains() for associative containers.
    • remove(), remove_if() et unique() pour list et forward_list retournent maintenant size_type.remove(), remove_if(), and unique() for list and forward_list now return size_type.
    • shift_left() et shift_right() ajoutés à <algorithm>.shift_left() and shift_right() added to <algorithm>.
  • Les 20 fonctionnalités d’évaluation C ++ suivantes ont été implémentées dans le compilateur C++, disponible sous /std:c++latest :The following C++20 preview features have been implemented in the C++ compiler, available under /std:c++latest:

    • Possibilité accrue de trouver des modèles de fonctions par le biais d’une recherche dépendante d’un argument pour les expressions d’appel de fonction avec des arguments de modèle explicites (P0846R0).Increased ability to find function templates via argument-dependent lookup for function call expressions with explicit template arguments (P0846R0).
    • Initialisation désignée (P0329R4), ce qui permet la sélection de membres spécifiques dans l’initialisation d’agrégats, par exemple à l’aide de la syntaxe Type t { .member = expr }.Designated initialization (P0329R4), which allows specific members to be selected in aggregate initialization, e.g. using the Type t { .member = expr } syntax.
  • La prise en charge de lambda a été repensée, résolvant un grand nombre de bogues de longue date.Lambda support has been overhauled, addressing a large number of long-standing bugs. Ce changement est activé par défaut quand vous utilisez /std:c++latest.This change is enabled by default when using /std:c++latest. Dans d’autres modes de langage /std:c++* et dans le mode par défaut, le nouvel analyseur peut être activé par le biais de /experimental:newLambdaProcessor ; par exemple /std:c++17 /experimental:newLambdaProcessor.In other /std:c++* language modes and under the default mode, the new parser can be enabled via /experimental:newLambdaProcessor, e.g. /std:c++17 /experimental:newLambdaProcessor.

  • Documentation dans l’éditeur pour CMakeIn-editor documentation for CMake

  • Les saisies semi-automatiques et les informations express des commandes, variables et propriétés CMake intégrées facilitent la modification de vos fichiers CMakeLists.txt.Completions and quick info for built-in CMake commands, variables, and properties make it easier to edit your CMakeLists.txt files.

Tooltip info for add_subdirectory CMake command
Info-bulle pour la commande CMake add_subdirectoryTooltip info for add_subdirectory CMake command

F# et outils F#F# and F# tools

Il s’agit d’une version relativement mineure pour le langage et les outils F#, mais qui n’est pas sans quelques goodies !This is a relatively minor release for the F# language and tools, but it's not without some goodies! Comme la mise à jour Visual Studio 16.0, cette version se concentre sur les performances des outils de l’éditeur.As with the VS 16.0 update, this release also focused on performance of editor tooling.

Compilateur F# et F# interactifF# compiler and F# interactive
  • Ajout de la prise en charge de P/Invoke dans F# Interactive sur .NET Core (6544)Added P/Invoke support to F# interactive on .NET Core (#6544)
  • Ajout d’une optimisation du compilateur pour Span<'T> quand il est utilisé dans une boucle for (#6195)Added a compiler optimization for Span<'T> when used in a for loop (#6195)
  • Ajout d’une optimisation permettant d’éviter des allocations Some superflues pour les options F# dans différents scénarios (#6532)Added an optimization to avoid an extraneous Some allocations for F# options in various scenarios (#6532)
  • Changement de l’ordre d’exécution des expressions utilisées dans l’instanciation des enregistrements anonymes (de haut en bas plutôt que par ordre alphabétique), pour que l’expérience actuelle soit identique à celle des enregistrements normaux (#6487)Changed the execution order of expressions used in the instantiation of Anonymous Records to be top-to-bottom, rather than alphabetical, to match the current experience with normal Records (#6487)
  • Résolution du bogue selon lequel les expressions littérales et les déclarations struct très volumineuses provoquaient parfois un dépassement de la capacité de la pile du compilateur lors du build (6258)A bug where very large literal expressions or very large struct declarations could cause the compiler to stack overflow on build has been resolved (#6258)
  • Résolution du bogue selon lequel les points d’arrêt ne se déclenchaient plus lors du débogage d’une fonction avec des enregistrements anonymes (6512)A bug where breakpoints would no longer trigger when debugging a function with an Anonymous Records has been fixed (#6512)
  • Résolution du bogue selon lequel les enregistrements anonymes passés à des constructions qui attendent un paramètre obj provoquaient un incident du compilateur (6434)A bug where Anonymous Records passed to constructs expecting an obj parameter caused a compiler crash has been fixed (#6434)
  • Résolution du bogue selon lequel les boucles for var expr1 to expr2 do ... provoquaient parfois une syntaxe étrangement valide (et ignorée) (6586)A bug where for var expr1 to expr2 do ... loops could result in bizarrely valid (and discarded) syntax has been fixed (#6586)
  • Résolution d’un bogue empêchant une utilisation correcte des enregistrements anonymes avec des événements (6572)A bug where Anonymous Records could not be used properly with events has been fixed (#6572)
  • Résolution d’un bogue de longue date générant des analyseurs extrêmement volumineux (plus de 100 millions de lignes) dans FsLexYacc (5967)A longstanding bug where extremely large generated parsers in FsLexYacc (over 100 million lines) has been resolved (#5967
  • Résolution d’un problème de longue date du composant de plug-in Fournisseur de type du compilateur qui risquait de laisser la porte ouverte à une fuite de mémoire causée par un fournisseur de type (6409)A longstanding issue in the Type Provider plugin component of the compiler that could leave the door open for a memory leak caused by a type provider has been resolved (#6409)
  • Ajout de la prise en charge de --pathmap au compilateur F# par Saul Rennison, ce qui résout le problème selon lequel l’exécutable obtenu après compilation comportait les chemins d’accès absolus aux fichiers sources dans la ressource de fichier de signature F# incorporée (5213)Support for --pathmap was added to the F# compiler by Saul Rennison, which resolves an issue where the resulting executable from a compilation would include absolute paths to source files in the embedded F# signature file resource (#5213)
  • Ajout d’une optimisation de l’arborescence de syntaxe abstraite F# qui améliore sa consommation par le biais d’autres outils et environnements (par exemple, Fable) par ncave (6333)An optimization to the F# AST that improves its consumption via other tools and enviroments (e.g., Fable) has been added by ncave (#6333)
  • Ajout d’une optimisation du parcours des informations lors de la résolution des membres par Steffen Forkmann (4457)An optimization around traversing information when resolving members has been added by Steffen Forkmann (#4457)
  • Ajout d’une amélioration des messages d’erreur, à savoir que, lorsqu’il manque des remplacements nécessaires à une implémentation de type, la liste en est signalée, par Gauthier Segay (4982)An improvement to error messages such that when a type implementation is missing necessary overrides a list of those missing overrides is reported has been added by Gauthier Segay (#4982)
Outils F#F# tools
  • La liste déroulante Version cible de .NET Framework pour les projets F# dans le kit SDK .NET comporte maintenant toutes les valeurs .NET Core, .NET Standard et .NET Framework disponibles pour faciliter la migration vers .NET Core à partir de .NET Framework sur le kit SDK .NETThe Target Framework dropdown for F# projects in the .NET SDK will now include values for all available .NET Core, .NET Standard, and .NET Framework values to ease migrating to .NET Core from .NET Framework on the .NET SDK
  • Correction du bogue selon lequel la modification du nom des paramètres de type générique produisait des noms protégés par un double accent grave d’échappement (5389)A bug where renaming generic type parameters produces double backtick-escaped names has been fixed (#5389)
  • Résolution du problème de longue date selon lequel les Fournisseurs de type étaient inutilement réinstanciés, provoquant à force des allocations massives (5929)A longstanding problem where Type Providers were redundantly reinstantiated, causing massive allocations over time, has been resolved (#5929)
  • Résolution du problème de longue date selon lequel la lecture du langage intermédiaire allouait inutilement 20 Mo sur une courte période (6403)A longstanding issue where reading IL needlessly allocated 20MB over a short period of time was been resolved (#6403)
  • Résolution du bogue selon lequel la méthode GetToolTipText du service du compilateur F# affichait parfois la même signature XML pour plusieurs surcharges de membres par Vasily Kirichenko (6244)A bug where the method GetToolTipText in the F# compiler service could show the same XML signature for several member overloads has been resolved by Vasily Kirichenko (#6244)
Infrastructure open source F#F# open source infrastructure

Enfin, nous avons amélioré différents aspects de l’expérience de contribution :Finally, we improved the contribution experience by doing the following:

  • Réalisation de notre processus de build à partir de la source de sorte que le compilateur F# et la bibliothèque principale puissent être générés avec le référentiel de build source .NET CoreCompleted our build from source process so that the F# compiler and core library can be built with the .NET Core source build repository
  • Suppression de notre dépendance à netstandard1.6 afin que l’ensemble du codebase cible uniformément netstandard2.0 et net472Removed our dependency on netstandard1.6 so that the entire codebase uniformly targets netstandard2.0 and net472
  • Ajout d’un fichier .vsconfig à la racine du référentiel pour que les contributeurs qui utilisent Visual Studio n’aient pas à savoir tout ce qu’il faut installer en amontAdded a .vsconfig file to the root of the repository so that contributors using Visual Studio don't have to know everything that needs installing up front
  • Réécriture du LISEZMOI de notre projet en supprimant les informations pouvant prêter à confusion, en ajoutant un guide de démarrage rapide sur les contributions et en essayant de délivrer un message plus complet sur les types de changements que nous aimerions effectuerRewrote our project's README to remove potentially confusing information, include a quickstart for getting started with contributing, and attempting to be more inclusive in our messaging about the kinds of changes we'd love to take

Productivité .NET.NET Productivity

  • Il existe maintenant une autocomplétion IntelliSense expérimentale pour les types non importés.There is now experimental intellisense completion for unimported types! Les utilisateurs reçoivent des suggestions IntelliSense pour les types dans les dépendances de leur projet même sans avoir ajouté l’instruction import au fichier.Uers now receive intellisense suggestions for types in dependencies in projects even if they have not yet added the import statement to the file. Activez cette option dans Outils > Options > Éditeur de texte > C# > IntelliSense.Turn this option on in Tools > Options > Text Editor > C# > Intellisense.
Intellisense completion for unimported types
Autocomplétion IntelliSense pour les types non importésIntellisense completion for unimported types
  • L’ajout/suppression des marques de commentaire sur une seule ligne, selon que la sélection est déjà commentée ou non,Toggle Single Line Comment/Uncomment is now available through the keyboard shortcut (Ctrl+K,/). est maintenant disponible avec le raccourci clavier (Ctrl+K, /).This command will add or remove a single line comment depending on whether your selection is already commented.
  • Possibilité d’exporter des styles de noms avec le bouton « Générer EditorConfig » situé dans Outils > Options > Éditeur de texte > C# > Style de code.Ability to export naming styles with the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
  • Possibilité d’utiliser une nouvelle règle de style de code EditorConfig pour exiger ou interdire les instructions using à l’intérieur d’un espace de nom.Ability to use a new editorconfig code style rule to require or prevent usings inside a namespace. Ce paramètre est également exporté par le bouton « Générer EditorConfig » situé dans Outils > Options > Éditeur de texte > C# > Style de code.This setting will also be exported when using the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
Editorconfig rule for usings outside/inside namespaces
Règle EditorConfig pour les instructions using à l’intérieur/l’extérieur des espaces de nomsEditorconfig rule for usings outside/inside namespaces
Tools Options setting for usings inside/outside namespace
Paramètres Outils > Options pour les instructions using à l’intérieur/l’extérieur d’un espace de nomsTools Options setting for usings inside/outside namespace
  • La colonne « Type » de Rechercher toutes les références comporte maintenant plus d’options de filtre et tient compte des espaces de noms et des types.The Find All References “Kind” column now has more filter options and is aware of namespaces and types.
Find All References Kind column has more filter options
La colonne de type Rechercher toutes les références comprend de nouvelles options de filtreFind All References Kind column has more filter options
  • Ajout d’un correctif de code pour le fractionnement/la fusion des instructions if.Added a codefix for split/merge if statements.
Split or merge if statements
Fractionner ou fusionner les instructions ifSplit or merge if statements
  • Ajout d’un correctif de code pour le wrapping d’expressions binaires.Added a codefix for wrapping binary expressions.
Wrap binary expressions
Encapsuler des expressions binairesWrap binary expressions
  • Une liste de saisie semi-automatique d’expression régulière (regex) est désormais accessible par l’intermédiaire du menu IntelliSense (Ctrl + espace) quand vous êtes dans une chaîne d’expression régulière.A regex completion list can now be accessed through the intellisense menu (Ctrl + space) when inside a regex string. Ces saisies semi-automatiques comprennent également une description in-line de ce que fait la suggestion.These completions also include an in-line description of what the suggestion does.
Regex completion offered in Intellisense with (Ctrl + space)
Autocomplétion des regexRegex completion
  • Ajout d’un correctif de code pour le descellement d’une classe.Added a codefix for unsealing a class.
Unseal a class codefix
Desceller une classeUnseal a class
  • Utilisez le nettoyage du code en un seul clic pour les projets et les solutions.Use one-click code cleanup for projects and solutions. Cliquez avec le bouton droit sur des projets ou la solution dans l’Explorateur de solutions, puis sélectionner « Exécuter le nettoyage du code ».Right-click on projects or the solution in the Solution Explorer and select ‘Run Code Cleanup’.
Right-click to run code cleanup over the entire solution
Cliquez avec le bouton droit pour exécuter un nettoyage du code sur l’ensemble de la solutionRight-click to run code cleanup over the entire solution
You will see a dialog box while cleanup is applied to each file
Une boîte de dialogue s’affiche pour chaque fichier auquel est appliqué le nettoyageA dialog is present box while cleanup is applied to each file
  • Utilisez maintenant une boîte de dialogue de refactorisation pour déplacer un type vers un espace de noms ou un dossier.Now use a refactoring dialog to move type to namespace or folder. Placez votre curseur dans le nom de la classe et tapez (Ctrl+.) pour ouvrir le menu Actions rapides et refactorisations, puis sélectionnez « Déplacer vers l’espace de noms ».Place your cursor in the class name and type (Ctrl + .) to open the quick actions and refactorings menu and select ‘Move to namespace.’ Cette action lance une boîte de dialogue dans laquelle vous pouvez sélectionner l’espace de noms cible vers lequel vous voulez déplacer le type.This launches a dialog where you can select the target namespace you would like to move the type to.
Place cursor in class name and type (Ctrl+.) to view refactorings
Placez le curseur sur le nom et le type de la classe (Ctrl+.) pour afficher les refactorisationsPlace cursor in class name and type (Ctrl+.) to view refactorings
Select the destination namespace
Sélectionnez l’espace de noms de destinationSelect the destination namespace
  • Activer/désactiver le commentaire de bloc / Ne pas commenter est désormais disponible par le biais du raccourci clavier (Ctrl+Maj+/) ou de Modifier > Avancé > Activer/désactiver le commentaire de bloc.Toggle Block Comment/Uncomment is now available through the keyboard shortcut (Ctrl+Shift+/) or through Edit > Advanced > Toggle Block Comment. Cette commande ajoute ou retire les commentaires de bloc en fonction de ce que vous avez sélectionné.This command will add or remove block comments depending on what you have selected.
Toggle block comment with (Ctrl+Shift+/)
Activer/désactiver le bloc de commentaire (Ctrl+Maj+/)Toggle block comment with (Ctrl+Shift+/)
  • Il existe désormais un correctif de code pour rendre les champs struct en lecture seule accessibles en écriture.There is now a codefix for making readonly struct fields writable. Placez votre curseur dans le nom du struct et tapez (Ctrl+.) pour ouvrir le menu Actions rapides et refactorisations, puis sélectionnez « Rendre les champs en lecture seule accessibles en écriture ».Place your cursor in the struct name, type (Ctrl+.) to open the quick actions and refactorings menu, and select ‘Make readonly fields writable.’
  • Le correctif de code permettant d’ajouter un champ privé à partir d’un constructeur, et vice versa, est plus facile à découvrir et indique quand une partie du nom du champ est sélectionnée.The codefix to add a private field from a constructor and vice versa is easier to discover and will show when any portion of the field name is selected. Désormais, cette refactorisation offre également tous les constructeurs possibles.This refactoring now also offers all possible constructors.

Préversion du Concepteur XAML pour le développement WPF .NET Core 3.0XAML Designer Preview for .NET Core 3.0 WPF development

  • Il existe une préversion du Concepteur XAML pour les développeurs qui créent des applications WPF .NET Core 3.0 dans Visual Studio.There is an early preview of the XAML Designer for developers building .NET Core 3.0 WPF applications in Visual Studio. De nombreuses fonctionnalités au moment du design ne sont pas disponibles pour l’instant.Many design-time features will be unavailable at this time. Dans la mesure où il s’agit d’une version préliminaire, veuillez envoyer des commentaires Visual Studio si vous rencontrez des problèmes tels que des blocages pour que l’équipe puisse améliorer l’expérience pour la suite.Since this is an early preview, if you encounter issues such as crashes, please submit Visual Studio feedback for the team to improve the experience going forwards.
  • À chaque mise à jour de Visual Studio 2019, nous continuerons d’implémenter certaines des fonctionnalités qui étaient disponibles dans le Concepteur XAML pour les applications WPF .NET Framework.With each update to Visual Studio 2019, we will continue implementing more of the features that were previously available in the XAML Designer for .NET Framework WPF applications.

Outils du kit SDK .NET.NET SDK tooling

Cette version a demandé beaucoup de travail pour débloquer l’utilisation de WPF sur .NET Core :This release included a lot of work to unblock the use of WPF on .NET Core:

  • Résolution du problème selon lequel une boîte de dialogue d’erreur s’ouvrait à chaque élément ajouté à un projet WPF ou Windows Forms .NET Core (4486).An issue where an error dialog popped up whenever you add a new item to a .NET Core WinForms or WPF project was been resolved (#4486).
  • Prise en charge des fichiers XAML dans les projets du kit SDK .NET (1467), qui inclut de nombreuses petites tâches visant à assurer une parité d’expérience avec les projets .NET à l’ancienne.Support for XAML files in .NET SDK projects (#1467) which includes many smaller items of work aimed at achieving experience parity with old-style .NET projects.
  • Prise en charge de l’élément de menu contextuel pour Windows Forms sur .NET Core (137) : Formulaire Windows, Contrôle utilisateur, Composant et Classe.Context menu item support for WinForms on .NET Core (#137): Windows Form, User Control, Component, and Class.
  • Prise en charge de l’élément de menu contextuel pour WPF sur .NET Core (137) : Fenêtre, Page, Contrôle utilisateur et Dictionnaire de ressources.Context menu item support for WPF on .NET Core (#137): Window, Page, User Control, Resource Dictionary.
  • La fenêtre Sources de données est maintenant activée pour les projets du kit SDK .NET, ce qui permet de gérer des cas courants de gestion des données pour Windows Forms (4479).The Data Sources window is now enabled for .NET SDK projects, enabling common data management scenarios for WinForms (#4479.

Indépendamment, d’autres correctifs ont été ajoutés dans cette version :Separately, a variety of other fixes were added in this release:

  • Les projets du kit SDK .NET prennent maintenant en charge les fichiers .razor (4468)..NET SDK projects now support .razor files (#4468).
  • Un texte d’aide accessible, lisible par des lecteurs d’écran, a été ajouté à la page de propriétés de débogage (4568).Accessible help text was added to the Debug property page, allowing it to be read by screen readers (#4568).
  • Nous avons ajouté un paramètre permettant de désactiver le double-clic pour ouvrir un fichier projet (4493).We added a setting that allows you to disable double-click to open a project file (#4493).
  • L’option de menu contextuel permettant de modifier un fichier projet n’inclut plus le nom du projet, ce qui résout le problème selon lequel le menu contextuel devenait trop gros en cas de nom de projet très long (1492).The context menu option to edit a project file no longer includes the project name, fixing an issue where the context menu could get too wide due to a very long project name (#1492).
  • Résolution du bogue selon lequel le fait de créer une source de données avec l’interface utilisateur Liaison de données produisait deux fichiers .datasource (4485).A bug where creating a Data Source with the Data Binding UI created two .datasource fileas has been fixed (#4485).
  • Résolution du bogue selon lequel des fichiers liés pouvaient entraîner un échec de l’outil de vérification des mises à jour (4580).A bug where using linked files could cause the up-to-date checker to fail has been resolved (#4580).
  • Résolution de différents bogues impliquant la résolution de packages et l’affichage de leur état résolu/non résolu dans le nœud Dépendances (2924 et 4577).A variety of bugs involving package resolution and the display of their resolved/unresolved state in the Dependencies node have been fixed (#2924,#4577).

Pour voir la liste complète des problèmes fermés, accédez au jalon 16.1 sur GitHub.You can see a full list of closed issues by going to the 16.1 milestone on GitHub.

XamarinXamarin

  • Mise à jour de l’expérience Android par défaut vers l’API 28 pour les modèles, la création d’appareil, les programmes d’installation, et plus encore.Updated the default Android Experience to API 28 for templates, device creation, installers, and more.
  • IntelliSense sur Windows affiche maintenant des recommandations concernant les attributs au moment du design lors de l’écriture de code XAML Xamarin.Forms.IntelliSense on Windows now shows recommendations for design-time attributes when writing Xamarin.Forms XAML.

Problèmes connusKnown Issues

Passez en revue les problèmes et les solutions de contournement disponibles dans Visual Studio 2019 version 16.1 en suivant le lien ci-dessous.See all issues and available workarounds in Visual Studio 2019 version 16.1 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.


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