Visual Studio Icon Notes de publication de Visual Studio 2017 15,8 previewVisual Studio 2017 15.8 Preview 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 |


Notes

Il ne s’agit pas de la dernière version de Visual Studio.This is not the latest version of Visual Studio. Pour obtenir des informations sur la dernière version, Visual Studio 2019, consultez la page actuelle des Notes de publication.To see information on the latest version, Visual Studio 2019, please visit the current Release Notes page.


Download Visual Studio 2017 Community Button Download Visual Studio 2017 Professional Button Download Visual Studio 2017 Enterprise Button Download Visual Studio 2017 Build Tools Button


Nouveautés de la version 15.8What's New in 15.8

Le blog Visual Studio est la source officielle où l’équipe d’ingénierie de Visual Studio partage des informations sur le produit.The Visual Studio 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 15.8 dans les posts suivants :You can find in-depth information about the Visual Studio 15.8 releases in the following posts:

Versions préliminaires de Visual Studio 2017 version 15,8Visual Studio 2017 version 15.8 Preview Releases

Annonces de Visual Studio 2017 version 15.8Visual Studio 2017 version 15.8 Announcements


Problèmes connusKnown Issues

Passez en revue tous les problèmes connus et les solutions de contournement disponibles dans Visual Studio 2017 version 15.8.See all existing known issues and available workarounds in Visual Studio 2017 version 15.8.

Visual Studio 2017 Known Issues Visual Studio 2017 Known Issues

Le composant outils PowerShell a été supprimé du programme d’installation de Visual Studio.The PowerShell tools component has been removed from Visual Studio setup. Si vous effectuez une mise à niveau vers Visual Studio Update 8 Preview 3 ou version ultérieure, les outils PowerShell installés sont supprimés.If you upgrade to Visual Studio update 8 preview 3 or later, the installed PowerShell tools is removed. Si vous souhaitez continuer à utiliser ce composant, installez à partir de la Galerie Visual Studio à l’adresse PowerShell Tools for Visual Studio 2017.If you want to continue using this component, install from Visual Studio gallery at PowerShell Tools for Visual Studio 2017.


Release Notes Icon Visual Studio 2017 version 15,8 Preview 1Visual Studio 2017 version 15.8 Preview 1

publiée le 7 mai, 2018released May 07, 2018

Résumé des nouveautés de 15,8 Preview 1Summary of What's New in 15.8 Preview 1

Nouvelles fonctionnalités de 15,8 Preview 1New Features in 15.8 Preview 1

Problèmes résolus dans 15,8 Preview 1Issues Fixed in 15.8 Preview 1

Voici les problèmes signalés par des clients et résolus dans cette version.These are the customer-reported issues addressed in this release. Si vous recherchez un problème spécifique signalé par un client qui a été corrigé dans 15,8 Preview 1, reportez-vous à la communauté des développeurs.If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 1, visit the Developer Community.


Détails des nouveautés de 15,8 Preview 1Details of What's New in 15.8 Preview 1

C++C++

Les info-bulles Info express C++ des macros montrent maintenant ce qu’elles développent, plutôt que juste leur définition.C++ Quick Info tooltips on macros now show what they expand to, rather than just their definition. C’est particulièrement utile pour les macros complexes qui référencent d’autres macros parce que cela clarifie par quoi l’identificateur de la macro est remplacé par le préprocesseur.This is particularly useful for complex macros that reference other macros as it clarifies what the macro identifier is replaced with by the preprocessor.

Outils web Visual StudioVisual Studio Web Tools

Le Gestionnaire de bibliothèques est une nouvelle fonctionnalité de Visual Studio 2017.Library Manager is a new feature included in Visual Studio 2017. Il vous permet de gérer les bibliothèques côté client dans vos projets web.It helps you manage client-side libraries in your web projects.

Type de conteneurContainer Tools

Dans Visual Studio 15,8 Preview 1, nous avons ajouté une nouvelle expérience de conteneur d’ancrage de projet unique pour ASP.NET Core projets Web.In Visual Studio 15.8 Preview 1, we have added a new single project Docker container experience for ASP.NET Core web projects. Elle vient en complément des outils de conteneur Docker Compose existants et offre un moyen plus simple et plus rapide de créer, déboguer et générer des conteneurs Docker directement de Visual Studio.This supplements the existing Docker Compose-based container tooling and provides a simpler, easier way to create, debug, and build Docker containers right from Visual Studio.

Vous pouvez ajouter la prise en charge de l’ancrage lors de la création du projet (figure 1) :You can add Docker support when creating the project (Figure 1):

Enable Docker Support
(Figure 1) Activer la prise en charge de l’ancrage(Figure 1) Enable Docker Support

Ou vous pouvez activer la prise en charge de l’ancrage sur un projet existant via le menu contextuel du projet dans Explorateur de solutions (figure 2).Or, you can enable Docker support to an existing project through the project's context menu in Solution Explorer (Figure 2). Une fois fait, Visual Studio crée un fichier Dockerfile dans le projet.Once you do this, Visual Studio creates a single Dockerfile in the project. Vous avez la possibilité de choisir Windows ou Linux.You have the option to choose either Windows or Linux.

Add Docker Support
(Figure 2) Ajouter la prise en charge de l’ancrage(Figure 2) Add Docker Support

Visual Studio ajoute également un profil de lancement du débogueur (figure 3) pour l’ancrer afin que le projet puisse être débogué lors de l’exécution dans un conteneur.Visual Studio also adds a debugger launch profile (Figure 3) for Docker so that the project can be debugged while running within a container.

Docker Launch Profile
(Figure 3) Profil de lancement de l’amarrage(Figure 3) Docker Launch Profile

Si vous avez une solution avec plusieurs projets Docker, par défaut, un seul conteneur s’exécute lorsque vous choisissez de démarrer la solution.If you have a solution with multiple Docker projects, by default, only one container runs when you choose to start the solution. Si vous souhaitez exécuter simultanément plusieurs conteneurs, vous pouvez cliquer avec le bouton droit sur la solution dans l’Explorateur de solutions et sélectionner Définir les projets de démarrage et Plusieurs projets de démarrage, puis définir la liste déroulante Action sur Démarrer ou Démarrer sans débogage pour tous les projets que vous souhaitez exécuter.If you wish to run multiple containers simultaneously, you can right-click on the solution in Solution Explorer and select Set Startup Projects, then Multiple startup projects, and then set the Action drop-down to Start or Start without debugging for all projects that you want to run.

Une fois que votre projet conteneurisé s’exécute comme vous le souhaitez, vous pouvez cliquer avec le bouton droit sur le projet et sélectionner Générer une image Docker pour générer une image localement, quand vous êtes prêt à l’envoyer vers Azure Container Registry ou DockerHub.Once you have your containerized project running the way you want, you can right-click on the project and select Build Docker Image to build an image locally, when ready to push to Azure Container Registry or DockerHub.

Vous pouvez également ajouter la fonctionnalité Docker Compose existante à un projet Web ASP.NET Core par le biais de la nouvelle option de prise en charge de Container Orchestrator (figure 4).You can also add the existing Docker Compose-based functionality to an ASP.NET Core web project through the new Container Orchestrator Support option (Figure 4). Cliquez avec le bouton droit sur le projet web ASP.NET Core dans l’Explorateur de solutions, sélectionnez Ajouter > Prise en charge de l’orchestrateur de conteneurs, puis Docker Compose dans le menu déroulant.Right-click on the ASP.NET Core web project in Solution Explorer, select Add > Container Orchestrator Support, and then select Docker Compose from the drop-down menu.

Add Container Orchestrator Support
(Figure 4) Ajouter la prise en charge de l’orchestration(Figure 4) Add Orchestration Support

Release Notes Icon Visual Studio 2017 version 15,8 Preview 1,1Visual Studio 2017 version 15.8 Preview 1.1

publié le 08 mai, 2018released May 08, 2018

Problèmes résolus dans 15,8 Preview 1,1Issues Fixed in 15.8 Preview 1.1

  • Cette version fournit un correctif qui réduit l’utilisation de la mémoire et la pression du GC pendant le chargement de la solution.This release provides a fix that reduces memory usage and GC pressure during solution load.

Release Notes Icon Visual Studio 2017 version 15.8 Preview 1 - Avis de sécuritéVisual Studio 2017 version 15.8 Preview 1 Security Advisory Notice

mis à jour le 08 mai 2018updated May 08, 2018

Avis de sécurité Microsoft concernant la vulnérabilité de déni de service .NET CoreMicrosoft Security Advisory for .NET Core Denial Of Service Vulnerability

CVE-2018-0765CVE-2018-0765

Microsoft publie cet avis de sécurité pour fournir des informations sur une vulnérabilité dans .NET Core et .NET Native version 2.0.Microsoft is releasing this security advisory to provide information about a vulnerability in .NET Core and .NET native version 2.0. Cet avis propose aussi des conseils sur ce que les développeurs peuvent faire pour mettre à jour leurs applications afin d’éliminer cette vulnérabilité.This advisory also provides guidance on what developers can do to update their applications to remove this vulnerability.

Microsoft a connaissance d’une vulnérabilité de déni de service qui apparaît quand le .NET Framework et .NET Core ne traitent pas correctement des documents XML.Microsoft is aware of a denial of service vulnerability that exists when .NET Framework and .NET Core improperly process XML documents. Un attaquant qui parvenait à exploiter cette vulnérabilité pouvait provoquer un déni de service sur une application .NET Framework, .NET Core ou .NET Native.An attacker who successfully exploited this vulnerability could cause a denial of service against a .NET Framework, .NET Core, or .NET native application.

La mise à jour corrige la vulnérabilité en changeant la manière dont les applications .NET Framework, .NET Core et .NET Native gèrent le traitement des documents XML.The update addresses the vulnerability by correcting how .NET Framework, .NET Core, and .NET native applications handle XML document processing.

Si votre application est une application ASP.NET Core, il est également conseillé aux développeurs d’effectuer une mise à jour vers ASP.NET Core 2.0.8.If your application is an ASP.NET Core application, developers are also advised to update to ASP.NET Core 2.0.8.


Release Notes Icon Visual Studio 2017 version 15,8 Preview 2Visual Studio 2017 version 15.8 Preview 2

publiée le 31 mai 2018released May 31, 2018

Résumé des nouveautés de 15,8 Preview 2Summary of What's New in 15.8 Preview 2

Nouvelles fonctionnalités de 15,8 Preview 2New Features in 15.8 Preview 2

Problèmes résolus dans 15,8 Preview 2Issues Fixed in 15.8 Preview 2

Voici les problèmes signalés par des clients et résolus dans cette version.These are the customer-reported issues addressed in this release. Si vous recherchez un problème spécifique signalé par un client qui a été corrigé dans 15,8 Preview 2, reportez-vous à la communauté des développeurs.If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 2, visit the Developer Community.


Détails des nouveautés de 15,8 Preview 2Details of What's New in 15.8 Preview 2

InstallerInstall

Vous pouvez désormais télécharger tous les fichiers d’installation avant de commencer votre installation.You now have the option to download all installation files before starting your installation.

  • Pour utiliser cette nouvelle option, sélectionnez l’option « Tout télécharger, puis installer » dans le programme d’installation (Figure 1) .To use this new option, select the "Download all, then install" option in the installer (Figure 1). Nous vous suggérons cette option si vous avez une connexion Internet plus lente.We suggest this option if you have a slower internet connection.
  • L’option par défaut reste « Installer pendant le téléchargement ». Elle effectue le téléchargement et l’installation en parallèle.The default option remains "Install while downloading", which downloads and installs in parallel.
Download, then install option
(Figure 1) Option Tout télécharger, puis installer(Figure 1) Download, then install option

PerformancesPerformance

Nous avons ajouté une option pour désactiver la réouverture des documents qui étaient ouverts dans la session précédente, car la réouverture de certains types de fichiers ou de concepteurs peut retarder le chargement de la solution.We've added an option to disable reopening documents that were open in the previous session, as reopening certain types of files or designers can delay solution load.

  • Activez/désactivez cette option dans Outils > Options > Projets > Solutions > Général.Toggle this option in Tools > Options > Projects > Solutions > General.

DébogageDebugging

Quand plusieurs instances de Visual Studio 2017 sont installées, vous pouvez maintenant sélectionner l’instance vers laquelle vous souhaitez déployer votre extension lors du débogage (figure 2).When you have more than one instance of Visual Studio 2017 installed, you can now select which instance to deploy your extension to when debugging (Figure 2). Vous pouvez ainsi effectuer un développement, par exemple, dans le canal des versions de Visual Studio pendant un débogage dans le canal des préversions.That way you can develop in the e.g. the Visual Studio release channel while debugging in the preview channel.

Select your debug instance
(Figure 2) Sélectionner une instance de débogage(Figure 2) Select debug instance

ExtensibilitéExtensibility

Vous pouvez maintenant générer des projets d’extension Visual Studio (VSIX) à l’aide des outils de génération pour Visual Studio 2017.You can now build Visual Studio extension (VSIX) projects using the Build Tools for Visual Studio 2017.

Profilage des performances (Utilisation de l’UC)Performance Profiling (CPU Usage)

Cette version contient les améliorations suivantes de l’outil Utilisation de l’UC du Profileur de performances (disponible avec ALT-F2) :This release contains the following improvements to the CPU Usage tool of the Performance Profiler (available through ALT-F2):

  • La vue Arborescence des appels affiche désormais par défaut l’exécution asynchrone par pile des appels logiques.The Call Tree view now displays asynchronous execution by logical call stack by default. Vous pouvez désactiver ce comportement en décochant l’option « Code asynchrone d’agrafage » dans la liste déroulante de filtre de la vue principale Utilisation de l’UC.You can turn off this behavior by unchecking the option "Stitch Async Code" in the Filter dropdown of the CPU Usage main view.
  • Ajout d’une vue Modules/Fonctions qui affiche des informations sur les performances par module (dll) et par fonction dans un module.Added a Modules/Functions view which displays performance information by module (dll) and by function within a module. Il est possible d’afficher la vue Modules/Fonctions dans le menu contextuel disponible en sélectionnant une fonction dans la vue principale Utilisation de l’UC, ou à partir de la liste déroulante des vues, dans les vues Arborescence des appels ou Appelant/appelé.One can display the Modules/Functions view from the context menu available when selecting a function in the CPU Usage main view, or from the View dropdown in the Call Tree or Caller/Callee views.
  • Ajout d’une « indication d’instance » au graphique Utilisation de l’UC dans la vue principale de l’outil Utilisation de l’UC.Added 'instance indication' to the CPU Usage graph in the CPU Usage tool's main view. Vous pouvez afficher les instances quand une fonction est exécutée (par exemple, sur la pile) en double-cliquant sur une fonction répertoriée dans l’une des vues Utilisation de l’UC.You can view the instances when a function is executing (for instance, on the stack) by double clicking a function listed in any of the CPU Usage views.

C++C++

Cette version comprend les mises à jour et améliorations suivantes apportées à C++ :This release has the following updates and enhancements to C++:

  • Ajout d’un > nouveau modèle d’élément pour la génération d’un fichier. Clang-format suivant la Convention de codage spécifiée pour ClangFormat dans les > Options des outils.Added Add > New Item template for generating a .clang-format file following the coding convention specified for ClangFormat in Tools > Options. Si la convention Visual Studio est sélectionnée, le fichier généré essaie de faire correspondre la configuration de mise en forme Visual Studio actuelle de l’utilisateur dans Outils > Options.If the Visual Studio convention is selected, the generated file tries to match the user's current Visual Studio formatting configuration from Tools > Options.
  • Mise à jour de la version livrée de clang-format.exe avec la version 6.0.0.Updated the shipped clang-format.exe version to 6.0.0.
  • Modèles pour simplifier l’ajout de configurations dans CppProperties.json.Templates to simplify adding configurations to CppProperties.json.

Visual Studio Tools pour XamarinVisual Studio Tools for Xamarin

Cette version contient les mises à jour suivantes pour Xamarin :This release contains the following updates for Xamarin:

Prise en charge de l’émulateur Android Hyper-VHyper-V Android emulator support

Cette version contient un aperçu de l' émulateur Google Android qui est compatible avec Hyper-V , qui est disponible dans la mise à jour 2018 de Windows 10 avril (figure 3).This release contains a preview of the Google Android emulator that is compatible with Hyper-V which is available in the Windows 10 April 2018 Update (Figure 3). Ainsi, vous pouvez utiliser l’émulateur Android de Google côte à côte avec d’autres technologies Hyper-V, notamment les machines virtuelles Hyper-V, les outils Docker, l’émulateur HoloLens et plus encore.This enables you to use Google's Android emulator side-by-side with other Hyper-V based technologies, including Hyper-V virtual machines, Docker tooling, the HoloLens emulator, and more. Les développeurs d’applications mobiles qui utilisent Hyper-V ont maintenant accès à un émulateur Android rapide qui prend en charge les dernières API Android, fonctionne avec Google Play Services et prend en charge toutes les fonctionnalités de l’émulateur Android, notamment l’appareil photo, la géolocalisation et Quick Boot.Mobile app developers who use Hyper-V now have access to a fast Android emulator that always supports the latest Android APIs, works with Google Play Services out of the box, and supports all features of the Android emulator, including camera, geolocation, and Quick Boot.

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
(Figure 3) Émulateur Google Émulateur Android et HoloLens
(Figure 3) Google Android Emulator and HoloLens emulator
Prise en charge minimale des projets de liaison Xamarin. MacMinimum support for Xamarin.Mac binding projects

Nous avons ajouté une prise en charge minimale des projets de liaison Xamarin.Mac dans Visual Studio 2017.We have added minimum support for Xamarin.Mac binding projects in Visual Studio 2017. Ainsi, Visual Studio peut charger et reconnaître les projets de liaison Xamarin.Mac comme pris en charge.This enables Visual Studio to load and recognize Xamarin.Mac binding projects as supported. Vous pouvez également créer des projets de liaison Xamarin.Mac, mais le processus de génération est effectué localement sans utiliser la chaîne d’outils Mac native pour que les assemblys de langage intermédiaire générés ne puissent pas être utilisés pour exécuter ou déboguer dans les applications.You can also build Xamarin.Mac binding projects, however the build process is performed locally without using the native Mac tool chain so the generated IL assemblies cannot be used for running or debugging in apps.

#Outils f et f #F# and F# Tools

Nous nous sommes concentrés sur les performances de F # Tools quand vous utilisez des projets de style SDK .net et des # correctifs du compilateur f.We focused on performance for F# tools when using .NET SDK-style projects and F# compiler fixes.

#Langage FF# language
  • Une fois encore, vous pouvez hériter de FSharpFunc .You can once again inherit from FSharpFunc. Cela a été précédemment désactivé dans F # 4,1.This was previously disabled in F# 4.1.
  • Nous avons résolu un bogue dans lequel vous pouviez obtenir un AccessViolationException avec seq { } lors de l’utilisation de yield! avec plusieurs séquences collectées en mode release.We fixed a bug where you could get an AccessViolationException with seq { } when using yield! with multiple collected sequences in release mode.
  • Nous avons résolu un bogue dans MailboxProcessor.TryReceive() où il pouvait entraîner un pic d’utilisation de l’UC lors de la première invocation.We fixed a bug in MailboxProcessor.TryReceive() where it could cause a spike in CPU usage on first invocation.
  • Les avertissements de correspondance de modèle enum affichent désormais un nom de champ d’un code non couvert, par John Wostenberg.Enum pattern match warnings now print out a field name of an uncovered code, by John Wostenberg.
Outils F#F# tools
  • Nous avons considérablement amélioré le temps de colorisation sémantique dans les fichiers F récemment ouverts # dans les projets du kit de développement logiciel (SDK) .net qui n’utilisent pas le multi-ciblage.We significantly improved the time to semantic colorization in newly-opened F# files in .NET SDK projects that are not using multi-targeting.
  • Nous avons considérablement amélioré les performances d’IntelliSense pour F # dans les projets du kit de développement logiciel (SDK) .net qui n’utilisent pas le multi-ciblage.We significant improved IntelliSense performance for F# in .NET SDK projects that are not using multi-targeting.
  • Les données de saisie semi-automatique dans IntelliSense sont maintenant enregistrées pendant deux minutes maximum, ce qui permet de conserver les descriptions dans l’info-bulle jusqu’à ce point par appel.Completion data in IntelliSense is now saved for up to two minutes, allowing descriptions in the tooltip to remain for up until that point per invocation.

Release Notes Icon Visual Studio 2017 version 15,8 Preview 3Visual Studio 2017 version 15.8 Preview 3 New Release icon

publiée le 26 juin 2018released June 26, 2018

Résumé des nouveautés de 15,8 Preview 3Summary of What's New in 15.8 Preview 3

Nouvelles fonctionnalités de 15,8 Preview 3New Features in 15.8 Preview 3

  • Visual Studio propose désormais des outils de développement .NET Framework 4.7.2 aux plateformes prises en charge avec le runtime 4.7.2 inclus.Visual Studio now offers .NET Framework 4.7.2 development tools to supported platforms with 4.7.2 runtime included.
  • Nous avons amélioré les performances pendant le déchargement/rechargement du projet et le changement de branches.We improved performance during project unload/reload and branch switching.
  • Avec la une prise en charge supplémentaire d’Azure Functions, vous avez maintenant un nouvel hôte cible dans la boîte de dialogue Configurer la livraison continue dans Azure.With added support for Azure Functions, you now have a new target host in the Configure Continuous Delivery to Azure dialog.
  • La mise à jour des états GIT et TFS s’effectue désormais correctement pour les changements de fichiers externes dans les projets .NET Core.Git and TFS status now updates properly for external file changes in .NET Core projects.
  • Nous avons ajouté de nouvelles fonctionnalités de productivité, comme le nettoyage du code, la refactorisation de l’instruction invert-if, Accéder au bloc englobant, la prise en charge de plusieurs signes d’insertion et de nouveaux profils de clavier.We added new productivity features, such as code cleanup, invert-if refactoring, Go to Enclosing Block, Multi-Caret support, and new keyboard profiles.
  • Les améliorations de C++ incluent les modèles IntelliSense, les macros de conversion en ampoules constexpr et les tildes d’analyse du code dans l’éditeur expérimentaux.C++ enhancements include Template IntelliSense, convert macro to constexpr lightbulbs, and experimental in-editor code analysis squiggles.
  • Vous pouvez maintenant utiliser le débogage multilangage avec Python 3.7.0rc1.You can now use cross-language debugging with Python 3.7.0rc1.
  • Le profilage des performances permet maintenant de suspendre/reprendre la collecte de données et ajoute un nouvel outil Suivi d’allocation d’objets .NET.Performance Profiling now offers the ability to pause/resume data collection and adds a new .NET Object Allocation Tracking tool.
  • Nous avons inclus des améliorations pour les builds incrémentielles Android dans la prise en charge de Xamarin pour XCode 9,4.We included improvements for Android incremental builds in the Xamarin support for Xcode 9.4.
  • Les outils de build prennent maintenant en charge le flux de travail.The Build Tools now support Workflow.
  • Les packages asynchrones à chargement automatique sont différés jusqu’à la fin du démarrage et de la solutionAsync autoload packages are delayed till startup and solution load complete

Problèmes résolus dans 15,8 Preview 3Issues Fixed in 15.8 Preview 3

Voici les problèmes signalés par des clients et résolus dans cette version.These are the customer-reported issues addressed in this release. Si vous recherchez un problème spécifique signalé par un client qui a été corrigé dans 15,8 Preview 3, reportez-vous à la communauté des développeurs.If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 3, visit the Developer Community.


Visual Studio 2017 version 15.8 Preview 3 - Avis de sécuritéVisual Studio 2017 version 15.8 Preview 3 Security Advisory Notice

Avis de sécurité Microsoft pour une vulnérabilité de sécurité de GitMicrosoft Security Advisory for Git Security Vulnerability

CVE-2018-11235CVE-2018-11235

Nous avons corrigé une faille de sécurité dans Git, signalée par la communauté Git.We fixed a security vulnerability in Git that was disclosed by the Git community. Cette vulnérabilité peut entraîner une exécution de code arbitraire quand un utilisateur clone un référentiel malveillant.The vulnerability can lead to arbitrary code execution when a user clones a malicious repository. Ce billet de blog fournit des informations supplémentaires.This blog post has more information.


Détails des nouveautés de 15,8 Preview 3Details of What's New in 15.8 Preview 3

.NET Framework 4.7.2.NET Framework 4.7.2

Visual Studio 2017 version 15.8 propose désormais les outils de développement .NET Framework 4.7.2 à toutes les plateformes prises en charge avec le runtime 4.7.2 inclus.Visual Studio 2017 version 15.8 now offers the .NET Framework 4.7.2 development tools to all supported platforms with the 4.7.2 runtime included. Le .NET Framework 4.7.2 offre plusieurs nouvelles fonctionnalités et améliorations ainsi que de nombreux correctifs pour la fiabilité, la stabilité, la sécurité et les performances.The .NET Framework 4.7.2 offers several new features and improvements as well as numerous reliability, stability, security, and performance fixes.

Vous trouverez plus de détails sur .NET Framework 4.7.2 dans les articles suivants :You can find more details about the .NET Framework 4.7.2 in these articles:

Niveau de performancePerformance

Cette version contient les améliorations des performances suivantes :This release contains the following performance improvements:

  • Le changement de branches pour les projets C#, VB et C++ est beaucoup plus rapide pour les grandes solutions, car il n’est plus nécessaire de les recharger.Branch switching for C#, VB, and C++ projects is much faster for large solutions since solution reload is no longer required.
  • Nous avons réduit le temps de déchargement et de rechargement d’un petit ensemble de projets C# et VB dans des solutions de grande taille de quelques minutes à plusieurs secondes.We have reduced the time to unload and reload a small set of C# and VB projects in large solutions from minutes to several seconds.

Profilage des performancesPerformance Profiling

Cette version comprend les améliorations du profilage des performances suivantes :This release contains the following performance profiling enhancements:

  • Nous avons ajouté la possibilité de démarrer le profilage suspendu :We added the capability to start profiling paused:

    • L’outil utilisation de l’UC dans le profileur de performances (ALT-F2) peut maintenant démarrer en pause.The CPU Usage tool in the Performance Profiler (ALT-F2) can now start paused. Cela peut être utile quand l’accès à un scénario nécessitant un examen de l’utilisation de l’UC prend un certain temps.This can be useful when it takes a while to get to a scenario worthy of a CPU Usage investigation. En démarrant la collecte de l’utilisation de l’UC désactivée, le Profileur de performances ne collecte pas d’échantillons de données de la pile d’utilisation de l’UC tant que cette collecte n’est pas spécifiquement activée.By starting the CPU usage collection disabled, the Performance Profiler will not collect any CPU usage sample stack data until it is specifically enabled. Cela réduit considérablement la quantité de données résultante à collecter et à analyser, ce qui améliore l’efficacité de l’examen des performances.This makes the resultant amount of data much smaller to collect and analyze, thus making your performance investigations more efficient.
    • Pour démarrer une session avec la collection d’exemples d’utilisation de l’UC désactivée, cliquez sur l’icône Paramètres (engrenages) en regard de l’outil utilisation de l’UC dans la page de lancement du profileur de performances (figure 1) pour afficher la page de propriétés utilisation de l’UC, puis décochez la case activer le profilage de l’UC (échantillonnage).To start a session with CPU Usage sample collection disabled, click the settings (gear) icon next to the CPU Usage tool in the Performance Profiler launch page (Figure 1) to display the CPU Usage property page, then uncheck the checkbox labeled Enable CPU Profiling (Sampling). Enfin, appuyez sur OK pour enregistrer les paramètres.Finally, press OK to save the settings.
      CPU Usage Tool settings page
      (Figure 1) Paramètres de l’outil utilisation de l’UC(Figure 1) CPU Usage Tool Settings
    • Une fois que vous avez démarré l’application cible (en appuyant sur le bouton Démarrer dans la page de lancement du profileur de performances), vous verrez un affichage d’analyse affichant le graphique d’utilisation de l’UC (figure 2) qui vous permet de contrôler le profilage de l’UC.Once you start the target application (by pressing the Start button in the Performance Profiler launch page), you'll see a monitoring display showing the CPU utilization graph (Figure 2) that allows you to control the CPU profiling. Pour activer la collecte d’échantillons de données de la pile de l’utilisation de l’UC, appuyez sur le lien Activer le profilage de l’UC situé au milieu de la vue, ou cliquez sur le bouton Enregistrer le profil du processeur juste en dessous du graphique d’utilisation de l’UC.To enable CPU usage sample stack data collection, press the Enable CPU profiling link in the middle of the view, or click the Record CPU Profile button just below the CPU utilization graph. Vous pouvez cliquer sur le bouton Enregistrer le profil du processeur pour activer/désactiver la collecte d’un échantillon de données autant de fois que vous le souhaitez.You can click the Record CPU Profile button to enable/disable sample data collection as many times as you like. La couleur du graphique d’utilisation de l’UC change pour indiquer si la collecte de l’échantillon est activée/désactivée à ce moment précis.The CPU utilization graph color changes to indicate whether sample collection is enabled/disabled at that point in time.
    CPU Usage Tool monitoring view
    (Figure 2) Affichage de l’analyse de l’outil utilisation de l’UC(Figure 2) CPU Usage Tool Monitoring View
  • Nous avons ajouté un outil Suivi d’allocation d’objets .NET :We added a .NET Object Allocation Tracking tool:

    • L’outil Suivi d’allocation d’objets .NET joint la famille d’outils disponibles à partir du Profileur de performances.The .NET Object Allocation Tracking Tool joins the family of tools available from the Performance Profiler. L’appel de cet outil pour une session de profileur de performances entraîne la collecte d’une trace de la pile pour chaque allocation d’objet .NET qui se produit dans l’application cible.Invoking this tool for a performance profiler session causes the collection of a stack trace for every .NET object allocation that occurs in the target application. Les données de cette pile sont analysées en même temps que les informations de type et de taille d’objet pour afficher les détails de l’activité de la mémoire de votre application.This stack data is analyzed along with object type and size information to reveal details of the memory activity of your application. Vous pouvez rapidement déterminer les modèles d’allocation dans votre code et également identifier les anomalies.You can quickly determine the allocation patterns in your code and identify anomalies as well. De plus, pour les événements de garbage collection (GC), il est ainsi facile de déterminer les objets qui ont été collectés et conservés, en identifiant rapidement les types d’objets qui dominent l’utilisation de la mémoire de l’application.In addition, for Garbage Collection (GC) events, one can easily determine which objects were collected and retained, quickly determining object types which dominate the memory usage of the application.
    • C’est particulièrement utile pour les writers d’API afin de réduire les allocations.This is especially useful for API writers to help minimize allocations. De nombreuses applications dépassent les limites de la mémoire tampon impliquées dans la collecte de données de diagnostic, mais les petites applications de test utilisant des scénarios clés d’une API peuvent être parfaitement diagnostiquées.A lot of applications will overrun the buffer limits involved in the diagnostics data collection, but small test applications exercising an API's key scenarios can be diagnosed quite well. Pendant l’exécution de votre application de test, le Profileur de performances affiche une vue de surveillance avec un graphique linéaire d’objets dynamiques (nombre), ainsi qu’un histogramme du delta de l’objet (% de changement).While your test application is executing, the Performance Profiler displays a monitoring view with a line graph of Live Objects (count), as well as an Object Delta (% change) bar graph.
    • Pour utiliser l’outil de suivi d’allocation d’objets .NET, affichez la page de lancement du profileur de performances (figure 3), sélectionnez une cible à profiler (la cible par défaut est le projet de démarrage dans la solution), vérifiez le suivi de l’allocation d’objets .net dans la liste des outils disponibles, puis appuyez sur le bouton Démarrer .To use the .NET Object Allocation Tracking Tool, display the Performance Profiler launch page (Figure 3), select a target to profile (the default target is the startup project in the solution), check .NET Object Allocation Tracking from the list of available tools, then press the Start button.
    Performance Profiler launch page
    (Figure 3) Page de lancement du profileur de performances(Figure 3) Performance Profiler Launch Page

C++C++

Cette version comprend les mises à jour et améliorations suivantes apportées à C++ :This release has the following updates and enhancements to C++:

  • Nous avons ajouté une nouvelle ampoule de correction rapide pour convertir les macros de base en constexpr en tant que nouvel outil pour moderniser le code.We added a new quick-fix lightbulb to convert basic macros to constexpr as a new tool to modernize code.
  • Vous disposez d’un nouveau préprocesseur basé sur des jetons, conforme aux normes C++ 11 (y compris les fonctionnalités du préprocesseur C99), activé avec/experimental : commutateur de préprocesseur.You have a new, experimental, token-based preprocessor that conforms to C++11 standards (including C99 preprocessor features), enabled with /experimental:preprocessor switch. C’est géré avec la macro _MSVC_TRADITIONAL, définie sur 1 quand vous utilisez le préprocesseur traditionnel et sur 0 quand vous utilisez le nouveau préprocesseur expérimental conforme aux normes.This is controlled with macro _MSVC_TRADITIONAL, which is defined 1 when using the traditional preprocessor and 0 when using the new experimental standards conformant preprocessor.
  • IntelliSense pour les modèles fournit plus de détails sur les arguments template pour tirer pleinement parti d’IntelliSense dans le corps de votre modèle.IntelliSense for templates provide you more details about template arguments to take full advantage of IntelliSense within your template body.
  • Nous avons ajouté des modèles pour simplifier l’ajout de configurations à CMakeSettings.js.We added templates to simplify adding configurations to CMakeSettings.json.
  • Nous travaillons actuellement à l’actualisation de notre expérience d’analyse du code.We're working to refresh our code analysis experience. Vous pouvez maintenant activer les nouvelles fonctionnalités en cours sous Outils > options > éditeur de texte > C++ > expérimental > analyse du code.You can now enable the new, in-progress features under Tools > Options > Text Editor > C++ > Experimental > Code Analysis. L’analyse du code peut s’exécuter en arrière-plan lorsque des fichiers sont ouverts ou enregistrés, et les résultats s’affichent dans la liste d’erreurs et sous forme de tildes verts dans l’éditeur.Code analysis can run in the background when files are opened or saved and results are displayed in the error list and as green squiggles in the editor.
  • Uniquement mon code vous permet maintenant de procéder à un pas à pas principal du code à partir des bibliothèques C++ système ou tierces, en plus de réduire ces appels dans la fenêtre de la pile des appels.Just My Code now enables you to step-over code from system or 3rd party C++ libraries in addition to collapsing those calls in the call-stack window. Vous pouvez gérer ce comportement dans toutes les bibliothèques C++ quand votre code est compilé avec /JMC et que les chemins des bibliothèques non-utilisateurs sont spécifiés dans un fichier .natjmc.You can control this behavior for any C++ libraries when your code is compiled with /JMC and the non-user libraries paths are specified in a .natjmc file. Si la bibliothèque système appelle du code utilisateur, quand vous effectuez un pas à pas détaillé, le débogueur ignore tout le code système et s’arrête sur la première ligne de rappel de code utilisateur.If the system library calls into user-code, when you step in, the debugger skips all system code and stops on the first line of user-code callback.
  • L’invite de commandes développeur Visual Studio prend en charge l’activation des runtimes atténués Spectre Variant 1 de Visual C++ (-vcvars_spectre_libs = spectre).The Visual Studio Developer Command Prompt supports enabling the Visual C++ Spectre variant 1 mitigated runtimes (-vcvars_spectre_libs = spectre). Pour plus d’informations sur les solutions d’atténuation de Spectre, consultez le blog de l’équipe Visual C++.More information about Spectre mitigations is available on the Visual C++ Team Blog.

PythonPython

Vous pouvez maintenant utiliser le débogage en mode mixte (inter-langage) avec Python 3.7.0 RC1.You can now use mixed-mode (cross-language) debugging with Python 3.7.0rc1.

Visual Studio Tools pour XamarinVisual Studio Tools for Xamarin

Cette version contient les mises à jour suivantes pour Xamarin :This release contains the following updates for Xamarin:

  • Nous avons ajouté la prise en charge de Xcode 9.4.We added support for Xcode 9.4.
  • Lorsque vous créez un projet Xamarin.Forms, l’option de partage de code par défaut est maintenant .NET Standard.When you create a new Xamarin.Forms project, the default code sharing option is now .NET Standard. L’option de projet partagé est toujours disponible.The shared project option is still available.
  • Nous avons apporté des améliorations aux builds incrémentielles Android.We added Android incremental build improvements. Xamarin.Android utilise des fichiers générés dans le répertoire de sortie intermédiaire pour réaliser des builds incrémentielles plus rapides que les builds complètes.Xamarin.Android uses files generated in the intermediate output directory to achieve incremental builds that are faster than full builds. Avant, si vous changiez le framework cible de votre projet, les fichiers étaient invalidés et une build complète était générée lors de l’exécution suivante.Previously, if you changed your project's target framework it would invalidate the files and result in a full build on the next run. Dans cette version, nous conservons les fichiers dans des dossiers par framework pour vous permettre de basculer entre les différents frameworks cibles et de continuer à bénéficier des builds incrémentielles.In this release we now preserve the files in per-framework folders so you can switch between different target frameworks and still benefit from incremental builds. En nettoyant le projet, vous pouvez récupérer l’espace disque utilisé par les fichiers conservés.Cleaning the project allows you to reclaim the disk space used by the preserved files.
  • Nous avons également ajouté des modèles pour Xamarin. Essentials.We also added templates for Xamarin.Essentials. Xamarin. Essentials est un ensemble de base d’API multiplateforme pour aider les développeurs à créer des applications natives.Xamarin.Essentials is a core set of cross-platform APIs to help developers build native apps. Cela permet aux développeurs d’accéder à plus de trente API spécifiques à une plateforme, accessibles à partir de leur code partagé.This gives developers access to over thirty platform-specific APIs that can be accessed from their shared code. Nous incluons la géolocalisation, le stockage sécurisé, les capteurs, les informations sur les appareils et bien plus encore.We include geolocation, secure storage, sensors, device information, and much more. Xamarin. Essentials peut être utilisé dans n’importe quelle application iOS, Android, UWP ou Xamarin. Forms, quelle que soit la façon dont vous créez l’interface utilisateur.Xamarin.Essentials can be used in any iOS, Android, UWP, or Xamarin.Forms app, regardless of how you create the user interface.

ProductivitéProductivity

Cette version contient les améliorations de la productivité suivantes :This release contains the following productivity enhancements:

  • Vous pouvez effectuer un nettoyage du code supplémentaire avec Mettre le document en forme (Ctrl+K, D ou Ctrl+E, D) pour le développement C#.You can perform additional code cleanup with Format Document (Ctrl + K, D or Ctrl + E, D) for C# development. Configurez le nettoyage en accédant à Outils > options > éditeur de texte > > > mise en forme > générale du style de code C#.Configure cleanup by going to Tools > Options > Text Editor > C# > Code Style > Formatting > General.
  • Nous avons ajouté des refactorisations et des actions rapides à l’aide de Ctrl+.We added more refactorings and quick actions using Ctrl + . ou de Alt+Entrée :or Alt + Enter:
    • L’instruction Invert If vous permet d’inverser votre logique dans les instructions if-else.Invert If enables you to invert your logic in if-else statements. Placez votre curseur dans le mot clé if pour déclencher cette refactorisation.Place your cursor in the if keyword to trigger this refactoring.
    • Ajouter un paramètre à partir d’un site d’appel de méthode vous permet d’ajouter un paramètre à une méthode en ajoutant un argument à un site d’appel de méthode puis en déclenchant Actions rapides et refactorisations.Add parameter from method callsite allows you to add a parameter to a method by adding an argument to a method callsite and triggering Quick Actions and Refactorings.
    • Supprimer les parenthèses inutiles supprime les parenthèses qui entourent les opérateurs binaires qui ne sont pas indispensables pour la compilation.Remove unnecessary parentheses removes parentheses around binary operators that are not essential for compilation. Vous pouvez configurer cette règle de style via Outils > options > éditeur de texte > > style de code C# > général ou. editorconfig :You can configure this style rule through Tools > Options > Text Editor > C# > Code Style > General or .editorconfig:
      • dotnet_style_parentheses_in_arithmetic_binary_operators
      • dotnet_style_parentheses_in_relational_binary_operators
      • dotnet_style_parentheses_in_other_binary_operators
      • dotnet_style_parentheses_in_other_operators
    • L’option Utiliser des conditions ternaires dans les affectations et les instructions return peut également être configurée en tant que règle de style dans Outils > Options > ... ou avec .editorconfig :Use ternary conditionals in assignments and return statements can also be configured as a style rule in Tools > Options > ... or through .editorconfig:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Nous avons ajouté de nouvelles commandes et des améliorations à la fenêtre atteindre tout :We added new commands and improvements to the Go To All window:
    • Accéder au bloc englobant (Ctrl+Alt+Flèche haut) vous permet de naviguer rapidement vers le haut jusqu’au début du bloc de code englobant.Go to Enclosing Block (Ctrl + Alt + UpArrow) allows you to quickly navigate up to the beginning of the enclosing code block.
    • Accéder au problème suivant/précédent(Alt+Pg. préc/Pg. suiv) vous permet d’ignorer le problème suivant/précédent (erreur, ligne ondulée, ampoule).Go to Next/Previous Issue (Alt + PgUp/PgDn) allows you to skip to the next/previous issue (error, squiggle, lightbulb).
    • Atteindre le membre (Ctrl+T, M) est désormais limité par défaut au fichier.Go to Member (Ctrl + T, M) is now scoped to the file by default. Vous pouvez rétablir la valeur par défaut dans la solution en basculant la Portée sur Document actif (Ctrl+Alt+C).You can change the default back to solution by toggling the Scope to Current Document (Ctrl + Alt + C).
  • Vous pouvez maintenant créer des points d’insertion et des sélections à plusieurs emplacements arbitraires dans un fichier avec la prise en charge des signes insertion multiples.You can now create insertion points and selections at multiple, arbitrary locations in a file with multiple caret support. Cela vous permet d’ajouter, de modifier ou de supprimer du texte simultanément à plusieurs endroits.This allows you to add, edit, or delete text in multiple places simultaneously.
    • Insérez des signes insertion avec Ctrl+Alt+Clic gauche de la souris.Insert carets with Ctrl + Alt + LeftMouseClick.
    • Ajoutez une sélection et un signe insertion à l’emplacement suivant correspondant à la sélection actuelle avec Maj+Alt+Inser.Add a selection and caret at next location that matches current selection with Shift + Alt + Ins.
    • Pour obtenir la liste complète des actions, consultez Modifier > Signes insertion multiples.See Edit > Multiple Carets for full list of actions.
  • Accédez à un menu de navigation contextuel avec Alt+' .Access a contextual navigation menu with Alt + `.
  • Assurez la cohérence de vos combinaisons de touches avec deux nouveaux profils de clavier : Visual Studio Code et ReSharper (Visual Studio) .Keep your keybindings consistent with two new keyboard profiles: Visual Studio Code and ReSharper (Visual Studio). Ces schémas sont disponibles sous Outils > Options > Général > Clavier et en utilisant le menu déroulant supérieur.You can find these schemes under Tools > Options > General > Keyboard and using the top drop-down menu.

Services connectésConnected Services

Vous pouvez maintenant configurer la livraison continue de fonctions Azure directement de Visual Studio 2017 pour les solutions avec des projets de fonction Azure.You can now configure continuous delivery for Azure functions directly from Visual Studio 2017 for solutions with Azure Function Projects.

Différer le chargement de packages qui se chargent automatiquement de manière asynchroneDelay loading of packages that autoload asynchronously

Visual Studio diffère le chargement des packages asynchrones qui sont configurés pour se charger automatiquement tant que l’IDE Visual Studio n’a pas totalement démarré et que la solution n’a pas été chargée.Visual Studio now delays the loading of asynchronous packages that are configured to autoload until after the Visual Studio IDE has fully started and the solution has loaded. Ce changement n’affecte pas les packages chargés automatiquement de façon synchrone.This change does not affect synchronously autoloaded packages. Les utilisateurs peuvent consulter le Centre d’état des tâches en bas à gauche de la barre d’état pour suivre la progression.Users can look at the Task Status Center in the lower left corner of the status bar to monitor progress. Les auteurs d’extensions qui créent des packages asynchrones doivent tester leur extension.Extension authors that create asyncpackages should test their extension. Pour plus d’informations, consultez Improving the responsiveness of critical scenarios by updating auto load behavior for extensions.For more information, see Improving the responsiveness of critical scenarios by updating auto load behavior for extensions.


Release Notes Icon Visual Studio 2017 version 15,8 Preview 4Visual Studio 2017 version 15.8 Preview 4

publiée le 10 juillet 2018released July 10, 2018

Résumé des nouveautés de 15,8 Preview 4Summary of What's New in 15.8 Preview 4

Cette version contient les améliorations et les avancées suivantes :This release contains the following improvements and enhancements:

Problèmes résolus dans 15,8 Preview 4Issues Fixed in 15.8 Preview 4

Voici les problèmes signalés par des clients et résolus dans cette version.These are the customer-reported issues addressed in this release. Si vous recherchez un problème spécifique signalé par un client qui a été corrigé dans 15,8 Preview 4, reportez-vous à la communauté des développeurs.If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 4, visit the Developer Community.


Visual Studio 2017 version 15.8 Preview 4 - Avis de sécuritéVisual Studio 2017 version 15.8 Preview 4 Security Advisory Notices

mise à jour : 10 juillet 2018updated July 10, 2018

Vulnérabilité d’exécution de code à distance de Visual StudioVisual Studio Remote Code Execution Vulnerability

CVE-2018-8172CVE-2018-8172

Une vulnérabilité d’exécution de code à distance pouvant conduire à l’exploitation de l’ordinateur d’un utilisateur en ouvrant un projet ou un fichier de ressources spécialement conçu.A remote code execution vulnerability that can lead to exploitation of a user's machine by opening a specially crafted project, or resource file. La mise à jour de sécurité élimine la vulnérabilité en corrigeant la façon dont Visual Studio vérifie le balisage source d’un fichier.The security update addresses the vulnerability by correcting how Visual Studio checks the source markup of a file. Pour plus d’informations, consultez Article du Centre MSRC (Microsoft Security Response Center) (CVE-2018-8172).For more information, see Microsoft Security Response Center article (CVE-2018-8172).

Vulnérabilité d’exécution de code à distance de .NET Framework.NET Framework Remote Code Execution Vulnerability

CVE-2018-8260CVE-2018-8260

Il existe une vulnérabilité d’exécution de code à distance dans le logiciel .NET, qui peut entraîner l’exploitation de l’ordinateur d’un utilisateur en permettant à des attaquants d’exécuter du code arbitraire dans le contexte de l’utilisateur actif.A remote code execution vulnerability exists in .NET software which can lead to exploitation of a user's machine by allowing attackers to run arbitrary code in the context of the current user. La mise à jour de sécurité élimine la vulnérabilité en corrigeant la façon dont .NET vérifie le balisage source d’un fichier.The security update addresses the vulnerability by correcting how .NET checks the source markup of a file. Pour plus d’informations, consultez Article du Centre MSRC (Microsoft Security Response Center) (CVE-2018-8260).For more information, see Microsoft Security Response Center article (CVE-2018-8260).

Une vulnérabilité de falsification de .NET Microsoft Macro Assembler.NET Microsoft Macro Assembler Tampering Vulnerability

CVE-2018-8232CVE-2018-8232

Vulnérabilité de falsification liée à la validation incorrecte du code par Microsoft Macro Assembler.Tampering vulnerability related to the Microsoft Macro Assembler improperly validating code. La mise à jour de sécurité corrige la vulnérabilité en garantissant que Microsoft Macro Assembler valide correctement la logique du code.The security update addresses the vulnerability by ensuring that Microsoft Macro Assembler properly validates code logic. Pour plus d’informations, consultez Article du Centre MSRC (Microsoft Security Response Center) (CVE-2018-8232).For more information, see Microsoft Security Response Center article (CVE-2018-8232).

Vulnérabilité de contournement d’une fonctionnalité de sécurité d’ASP.NET CoreASP.NET Core Security Feature Bypass Vulnerability

CVE-2018-8171CVE-2018-8171

Il existe une vulnérabilité de contournement d’une fonctionnalité de sécurité d’ASP.NET Core quand le nombre de tentatives de connexion incorrectes n’est pas vérifié, ce qui peut permettre à un attaquant d’effectuer des tentatives d’authentification en nombre infini.An ASP.NET Core Security Feature Bypass Vulnerability exists when the number of incorrect login attempts is not validated that can lead to an attacker trying infinite authentication attempts. La mise à jour corrige la vulnérabilité en vérifiant le nombre de tentatives de connexion incorrectes.The update addresses the vulnerability by validating the number of incorrect login attempts. Pour plus d’informations, consultez Article du Centre MSRC (Microsoft Security Response Center) (CVE-2018-8171).For more information, see Microsoft Security Response Center (CVE-2018-8171).

Détails des nouveautés de 15,8 Preview 4Details of What's New in 15.8 Preview 4

C++C++

Cette version comprend les mises à jour et améliorations suivantes apportées à C++ :This release has the following updates and enhancements to C++:

  • Deux nouveaux ajouts à l’optimiseur SSA portant sur la génération de code C++ moderne : élimination de magasin redondant et pliage des branches redondantes.Two new additions to the SSA Optimizer focused on modern C++ code generation: redundant store elimination and folding of redundant branches.
  • Optimisation de la mémoire mappée aux performances d’E/S dans l’éditeur de liens pour réduire les durées de lien.Optimized memory mapped I/O performance in the linker to reduce link times.
  • IntelliSense C++ répond désormais aux modifications dans l’environnement à distance pour les projets CMake et MSBuild ciblant Linux.C++ IntelliSense now responds to changes in the remote environment for both CMake and MSBuild projects targeting Linux. Quand vous installez de nouvelles bibliothèques ou que vous modifiez vos projets CMake, IntelliSense C++ analyse automatiquement les nouveaux fichiers d’en-têtes sur la machine distante pour offrir une expérience d’édition C++ complète et homogène.As you install new libraries or change your CMake projects, C++ IntelliSense will automatically parse the new headers files on the remote machine for a complete and seamless C++ editing experience.

Performance des testsTest Performance

Nous avons considérablement amélioré les performances lors de l’exécution de quelques tests dans une solution de grande taille avec plusieurs projets de test.We have significantly improved performance when running a few tests in a large solution with multiple test projects. Dans nos labs, l’exécution d’un test unique par une solution comprenant plus de 10 000 MSTests a été jusqu’à 82 % plus rapide !In our labs, a solution with over 10,000 MSTests executed a single test up to 82% faster!

Extension de l’adaptateur de test .NET : changement cassant et dépréciation.NET Test Adapter Extension: breaking change and deprecation

  • Modification avec rupture : tous les projets de test doivent inclure leur référence NuGet d’adaptateur de test .NET dans leur csproj.Breaking Change: All test projects must include their .NET test adapter nuget reference in their csproj. Dans le cas contraire, cette sortie de test s’affiche dans le projet si la découverte par une extension de l’adaptateur de test est lancée après une build ou si l’utilisateur tente d’exécuter les tests sélectionnés :If they do not, this test output will appear on the project if discovery by a test adapter extension is kicked off after a build or if the user tries to run the selected tests:
    • Le projet de test {} ne référence aucun adaptateur .NET NuGet.Test project {} does not reference any .NET NuGet adapter. La découverte ou l’exécution de tests risquent de ne pas fonctionner pour ce projet.Test discovery or execution might not work for this project. Il est recommandé de référencer les adaptateurs de test NuGet dans chaque projet de test de la solution.It is recommended to reference NuGet test adapters in each test project in the solution.
  • Les infrastructures de test .NET publient leurs adaptateurs dans des packages NuGet et s’éloignent des extensions Visual Studio..NET test frameworks have been releasing their adapters in nuget packages and moving away from Visual Studio extensions. Dans Visual Studio 2017 Update 15,8 Preview 4, la prise en charge des adaptateurs de test .NET fournis par le biais de l’extension est déconseillée, mais toujours prise en charge.In Visual Studio 2017 Update 15.8 Preview 4, support for .NET test adapters delivered through extension is deprecated, but still supported. Cela signifie que deux nouvelles options vont être disponibles dans Outils > Options > Test.This means two new options will be available in Tools > Options > Test.
    • La première option permet à Visual Studio d’utiliser uniquement les adaptateurs de test qu’il trouve dans le dossier de l’assembly de test (rempli par la référence NuGet de l’adaptateur de test) ou comme spécifié dans le fichier RunSettings.The first option allows Visual Studio to only use the test adapters it finds in the test assembly folder (populated by the test adapter nuget reference) or as specified in the runsettings file.
    • La deuxième option permet à Visual Studio de « basculer » vers l’ancien comportement et de rechercher les extensions d’adaptateur de test pour les projets qui n’ont pas de référence NuGet d’adaptateur de test.The second option allows Visual Studio to "fallback" to the old behavior and search for test adapter extensions for projects that do not have a test adapter nuget reference. Les deux options sont cochées par défaut, donc aucun comportement par défaut ne va changer dans cette version.Both options are checked by default so no default behavior will change in this release.
  • Notez que les adaptateurs de test non-.NET ne sont pas affectés par ce changement.Note, non-.NET test adapters are not affected with this change.

Améliorations de la publicationPublish Improvements

Cette version contient les améliorations de publication suivantes :This release contains the following publish improvements:

  • Quand vous publiez un conteneur Docker dans un registre de conteneurs, vous pouvez maintenant personnaliser le mot clé de l’image.When publishing a Docker container to a container registry, you can now customize the tag for the image. Vous pouvez ajouter manuellement un mot clé (la valeur par défaut est « dernier ») ou utiliser un mot clé généré automatiquement pour être sûr que chaque mot clé est unique.You can either manually add a tag (default is "latest") or use an auto-generated tag to make sure each tag is unique.
  • Lorsque vous créez un nouveau service d’application Azure, vous pouvez également configurer Application Insights pour collecter automatiquement la télémétrie.When creating a new Azure App Service, you can also configure Application Insights to automatically collect telemetry. Si vous choisissez une région qui a également Application Insights, la valeur par défaut est Activé.If you choose a region that also has Application Insights, it defaults to enabled. Si vous choisissez une région qui ne contient pas encore Application Insights, vous pouvez spécifier manuellement une autre région pour votre ressource Application Insights dans la liste déroulante.If you choose a region that does not yet contain Application Insights, you can manually specify a different region for your Application Insights resource from the dropdown.
  • Lors de la publication de projets Azure Functions, vous pouvez choisir de publier avec la nouvelle fonctionnalité Run-From-Zip.When publishing Azure Functions projects you can choose to publish using the new Run-From-Zip feature.

Amélioration des performances de Visual BasicVisual Basic Performance Improvement

Visual Basic apporte désormais une amélioration significative des performances quand vous utilisez le modèle CInt(Fix(number)) pour convertir les types non entiers en entiers.Visual Basic now provides a significant performance improvement when using the pattern CInt(Fix(number)) to convert from non-integer types to integers.

Visual Studio Tools pour XamarinVisual Studio Tools for Xamarin

Le Générateur d’aperçu Xamarin.Forms prend maintenant en charge la boîte à outils quand Xamarin.Forms version 3.1.0.583944 ou ultérieure est utilisé.The Xamarin.Forms Previewer now has toolbox support when using Xamarin.Forms version 3.1.0.583944 or higher. Les commandes Xamarin.Forms apparaissent dans la boîte à outils pour que ceux qui débutent avec les outils puissent les découvrir plus facilement.Xamarin.Forms controls will appear in the toolbox so they are more discoverable for those new to the toolkit. Vous pouvez également glisser-déplacer une commande dans l’éditeur de code XAML pour l’ajouter dans la page.You can also drag and drop a control onto the XAML code editor to add the control to the page.


Release Notes Icon Visual Studio 2017 version 15,8 Preview 5Visual Studio 2017 version 15.8 Preview 5 New Release icon

publiée le 26 juillet 2018released July 26, 2018

Résumé des nouveautés de 15,8 Preview 5Summary of What's New in 15.8 Preview 5

Cette version contient les améliorations et les avancées suivantes :This release contains the following improvements and enhancements:

Problèmes résolus dans 15,8 Preview 5Issues Fixed in 15.8 Preview 5

Voici les problèmes signalés par des clients et résolus dans cette version.These are the customer-reported issues addressed in this release. Si vous recherchez un problème spécifique signalé par un client qui a été corrigé dans 15,8 Preview 5, reportez-vous à la communauté des développeurs.If you are looking for a specific customer-reported issue that has been fixed in 15.8 Preview 5, visit the Developer Community.


Détails des nouveautés de 15,8 Preview 5Details of What's New in 15.8 Preview 5

Outils F# 4.5 et F# pour Visual Studio F# 4.5 and F# Tools for Visual Studio

Nous présentons la version préliminaire de la # version 4,5 du langage F avec cette version.We are introducing the preview of F# language version 4.5 with this release. Cela correspond également à la nouvelle famille 4.5.x de FSharp.Core (la bibliothèque principale F#).This also corresponds with the new 4.5.x family of FSharp.Core (the F# core library). Vous pouvez lire les spécifications de chacun de ces changements dans le dépôt RFC F#.You can read the specs for each of these changes in the F# RFC repository. De nombreuses améliorations ont également été apportées aux outils F# pour Visual Studio avec cette version.There are also many improvements to F# tools for Visual Studio with this release.

F# 4.5F# 4.5

Voici quelques-unes des principales nouveautés de la # version 4,5 de la version préliminaire du langage F :Here are the some of the highlights with the F# language version 4.5 preview:

Prise en charge de Span<'T>Span<'T> support

Nous avons implémenté Span<'T> et des fonctionnalités associées afin de permettre une consommation et une production efficaces d’API à l’aide de constructions de type Span, Memory et ref avec F#.We implemented Span<'T> and related features so that effective consumption and production of APIs using Span, Memory, and ref-like constructs are possible with F#. Les fonctionnalités disponibles à ces fins sont notamment les suivantes :The features for this include:

  • Nouveau type voidptr.New voidptr type.
  • Nouvelles fonctions NativePtr.ofVoidPtr et NativePtr.toVoidPtr dans FSharp.Core.New NativePtr.ofVoidPtr and NativePtr.toVoidPtr functions in FSharp.Core.
  • Nouveaux types inref<'T> et outref<'T>, qui sont, respectivement, des types byref en lecture seule et des types byref en écriture seule.New types inref<'T> and outref<'T>, which are readonly byrefs and write-only byrefs, respectively. Cela correspond à in ref et à out ref en C#.This correspond to in ref and out ref in C#.
  • Possibilité de produire des structsByRefLike (comme Span et ReadOnlySpan).The ability to produce ByRefLike structs (such as Span and ReadOnlySpan).
  • Possibilité de produire des structsIsReadOnly.The ability to produce IsReadOnly structs.
  • Déréférencement implicite des retours byref et inref à partir de méthodes.Implicit dereference of byref- and inref-returns from methods.
  • Possibilité de produire des membres d’extension sur byref/inref/outref.The ability to produce extension members on byref/inref/outref.

Cet ensemble de fonctionnalités résout un bogue dans la conception initiale des retours byref en F# 4.1, où les fonctions, les méthodes et les propriétés retournant des types byref ne déréférençaient pas implicitement la valeur de retour.This feature set fixes a bug in the initial design of byref-returns in F# 4.1, where functions, methods, and properties returning byrefs were not implicitly dereferencing the return value. Nous apportons ce changement pour rendre la fonctionnalité conforme à la façon dont C# gère les retours ref.We make this change to bring the feature in-line with how C# handles ref-returns. Un message d’erreur est utilisé quand une annotation de type indique qu’un déréférencement implicite d’un retour ref est maintenant utilisé.An error message is used when a type annotation indicates that an implicit dereference of a ref-return is now used.

De plus, cet ensemble de fonctionnalités corrige également un bogue dans le compilateur F# où le « remplacement de struct Evil » était possible, c’est-à-dire que l’appel d’une méthode sur un struct F# pouvait remplacer le struct réel appelé par une autre méthode.Additionally, this feature set also fixes a bug in the F# compiler where "Evil struct replacement" was possible; i.e., calling a method on an F# struct could replace the actual struct being called with a different one. Le paramètre this sur un struct est maintenant considéré comme un inref<MyStruct>, avec une erreur qui vous suggère d’ajouter un champ mutable si vous souhaitez modifier le struct.The this parameter on a struct is now considered an inref<MyStruct>, with an error that suggests you add a mutable field if you wish to modify the struct.

Vous pouvez en savoir plus sur les constructions de type span et ref dans les RFC pour cet ensemble de fonctionnalités.You can learn more about span and ref-like constructs in the RFC for this feature set.

Match! dans des expressions de calculMatch! in computation expressions

F# 4.5 introduit match!, un nouveau mot clé à utiliser dans les expressions de calcul, auquel John Wostenberg a entièrement contribué.F# 4.5 introduces match!, a new keyword for use within computation expressions, contributed entirely by John Wostenberg. Ce liant syntaxique équivaut à un let! suivi d’un match sur le résultat.This syntactic sugar is equivalent to a let! followed by a match on the result. Vous pouvez en savoir plus dans la RFC pour match!.You can learn more in the RFC for match!.

Assouplissement de la nécessité d’effectuer le cast d’un type dérivé avec yield dans des expressions de séquence, de liste et de tableauRelaxing the need to upcast with yield in sequence, list, and array expressions

F#4.5 assouplit maintenant certains cas où le cast d’un type dérivé était nécessaire lors de l’utilisation de yield pour convertir un sous-type en un supertype.F# 4.5 now relaxes some cases where an upcast when using yield was required to convert a subtype into a supertype. Cette restriction n’était déjà pas nécessaire pour ces expressions depuis F# 3.1 quand yield n’était pas utilisé. Cela rend donc les choses plus cohérentes avec le comportement existant.This restriction was already not necessary for these expressions since F# 3.1 when not using yield, so this makes things more consistent with existing behavior. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.You can learn more in the RFC for this feature.

Autorisation de mise en retrait sur les crochets de liste et de tableauPermitting undentation on list and array brackets

F# 4.5 assouplit la règle de mise en retrait des crochets de liste et de tableau, selon laquelle les crochets devaient faire l’objet d’une mise en retrait supplémentaire quand ils étaient sur leur propre ligne.F# 4.5 now relaxes the indentation rule for list and array brackets that required then to be indented one scope forward when on their own line. Cette ancienne exigence a toujours été assez déroutante, en particulier pour les débutants en F#.This previous requirement has always been quite confusing, especially for beginners to F#. De plus, elle n’est pas applicable pour les expressions de séquence F#.Additionally, it is not required for F# sequence expressions. Cela met les expressions de liste et de tableau dans le même état cohérent que les expressions de séquence.This now brings array and list expressions to the same consistent state as sequence expressions. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.You can learn more in the RFC for this feature.

Cas d’énumération émis comme publicsEnum cases emitted as public

F# 4.5 émet désormais les cas d’énumération comme publics en toutes circonstances, pour se conformer à la façon dont C# émet les cas.F# 4.5 now emits enumeration cases as public under all circumstances, to align with how C# emits enumeration cases. Cela permet aux outils de profilage d’analyser plus facilement les journaux du code F#, où la valeur plutôt que le nom d’étiquette était émise.This also makes it easier for profiling tools to analyze logs from F# code, where the value rather than the label name was emitted. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.You can learn more in the RFC for this feature.

Améliorations du compilateur F#F# Compiler Improvements

Nous avons apporté des améliorations au # compilateur F en plus des fonctionnalités de langage mentionnées précédemment.We made improvements to the F# compiler in addition to the previously-mentioned language features. Ces fonctionnalités sont les suivantes :These features include:

  • Nous avons amélioré les tâches liées aux performances du compilateur en supprimant jusqu’à 2,2 % de l’ensemble des allocations dans le compilateur F# (dans différents scénarios).We improved compiler performance work by removing up to 2.2% of all allocations in the F# compiler (under various scenarios).
  • Un bogue qui entraînait un AccessViolatioNException lors de l’utilisation de yield! avec des énumérables basés sur des structs a été résolu.A bug resulting in an AccessViolatioNException when using yield! with struct-based enumerables has been fixed.
  • Il est désormais possible d’hériter à nouveau de FSharpFunc.It is now possible to inherit from FSharpFunc again.
  • Les appels tail sont désactivés par défaut pour les builds de débogage de F# pour .NET Core.Tail calls are disabled by default for debug builds of F# for .NET Core. Elles sont activées pour la mise en production, et correspondent ainsi au compilateur F# du bureau.They are enabled for release, thus matching the desktop F# compiler.
  • La normalisation de référence F# a été corrigée pour vous permettre de contrôler les références d’assembly transitives écrites dans un fichier de sortie.F# reference normalization has been fixed to allow you to control transitive assembly references written to an output file. Cela vous permet d’effectuer l’équivalent de la redirection d’assembly sur .NET Core.This allows you to perform the equivalent of assembly redirection on .NET Core.
  • Un bogue dans lequel le message d’erreur utilisé lors de la tentative d’utilisation d’un appel dynamique sur les fonctions inline était ignoré a été résolu.A bug has been fixed where the error message used when attempting to use dynamic invocation on inline functions was ignored. Le message d’erreur se propage désormais.The error message now propagates.
  • F# respecte désormais l’indicateur WarningsNotAsErrors que vous pouvez définir dans les fichiers projet.F# now respects the WarningsNotAsErrors flag that you can set in project files.
  • Le message d’erreur lorsque les branches d’une correspondance de modèle ne retournent pas le même type a été mis à jour pour être plus convivial par Isaac Abraham.The error message when branches of a pattern match do not return the same type has been updated to be much more friendlier by Isaac Abraham.
  • Un bogue dans lequel une erreur interne survenant lors de la compilation d’une implémentation d’interface qui ne dispose pas d’une implémentation de méthode surchargée a été résolue par Steffen Forkmann.A bug where an internal error when compiling interface implementation that lacks an overloaded method implementation has been fixed by Steffen Forkmann.
  • La copie inutile de certains tableaux dans la phase d’analyse du compilateur a été supprimée par Gauthier Segay.Some unnecessary array copying in the lexing phase of the compiler has been removed by Gauthier Segay.
  • Des correspondances au modèle incomplètes sur des énumérations F# génèrent maintenant un avertissement détaillé qui donne l’exemple d’un cas non couvert, grâce à la contribution de John Wostenberg.Incomplete pattern matches on F# enumerations now produces a detailed warning that gives an example of a case not covered, contributed by John Wostenberg.
  • '#nowarn « 2003 » est maintenant respecté, grâce à la contribution de Matthias Diitrich.`#nowarn "2003" is now respected, contributed by Matthias Diitrich.
  • Un bogue où l’utilisation de méthodes d’extension C# pouvait échouer dans une résolution de surcharge F# a été résolu par Steffen Forkmann.A bug where consuming C# extensions methods could fail in F# overload resolution has been fixed by Steffen Forkmann.
  • Un bogue de structure de données QueueList interne a été résolu par Steffen Forkmann.An internal QueueList data structure bug was fixed by Steffen Forkmann.
  • Plusieurs optimisations et efforts de nettoyage du code de plus petite envergure ont été fournis par Steffen Forkmann, Eugene Auduchinok et ncave.Various smaller optimizations and code cleanup efforts were contributed by Steffen Forkmann, Eugene Auduchinok, and ncave.

Bibliothèque principale F# 4.5.xF# Core Library 4.5.x

Nous avons apporté les ajouts suivants à la # bibliothèque F Core :We made the following additions to the F# Core Library:

  • Un travail considérable a été effectué pour améliorer les traces de pile pour les expressions de calcul async { }.Significant work has been done to improve stack traces for async { } computation expressions. Vous devez maintenant être en mesure de voir le code utilisateur et les numéros de ligne utilisateur dans les traces de pile.You should now be able to see user code and user line numbers in stack traces. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.You can learn more in the RFC for this feature.
  • Les API FuncConvert.FromFunc et FuncConvert.FromAction API que les types System.Func et System.Action surchargent, afin de faciliter l’interopérabilité avec C#.FuncConvert.FromFunc and FuncConvert.FromAction APIs that type System.Func and System.Action overloads, to help in interoperation with C#. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.You can learn more in the RFC for this feature.
  • ValueOption est un nouveau type disponible. Il est le premier d’un ensemble de futures fonctionnalités dont l’objectif final est d’améliorer les performances des modèles actifs.ValueOption is a new type available, which is the first in a set of future features ultimately aimed at better performance for Active Patterns. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.You can learn more in the RFC for this feature.
  • TryGetValue est maintenant un nouveau membre sur le type de mappage F#.TryGetValue is now a new member on the F# Map type. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.You can learn more in the RFC for this feature.
  • Nous avons corrigé l’utilisation élevée de l’UC lors du premier appel de MailboxProcessor.TryReceive.We fixed High CPU usage upon the first invocation of MailboxProcessor.TryReceive.
  • La comparaison de bool utilise maintenant une comparaison générique rapide, grâce à la contribution de Vasily Kirichenko.Comparison for bool now uses fast generic comparison, contributed by Vasily Kirichenko.
  • Le texte récapitulatif pour Array.allPairs a été mis à jour pour être correct, grâce à la contribution de Patrick McDonaldThe summary text for Array.allPairs has been updated to be correct, contributed by Patrick McDonald

Améliorations des outils F#F# Tooling Improvements

Nous avons apporté des améliorations significatives aux # Outils f et, comme toujours, avec un grand nombre de contributions de la # communauté f Open source.We made significant improvements in the F# tools, and as always, with a large number of contributions from the F# open source community. Voici les points principaux :Here are the highlights:

  • Nous avons amélioré les performances d’IntelliSense pour les projets de style SDK .NET de tous les formulaires, dont ceux qui utilisent le multiciblage.We improved IntelliSense performance for .NET SDK-style projects of all forms, including those that use multi-targeting.
  • Un effort communautaire pour analyser et améliorer les performances d’IntelliSense pour les fichiers très volumineux a été fourni par Vasily Kirichenko, Steffen Forkmann et Gauthier Segay.A community-driven effort to analyze and improve IntelliSense performance for very large files was contributed by Vasily Kirichenko, Steffen Forkmann, and Gauthier Segay. Désormais, IntelliSense dans les fichiers très volumineux (plus de 10 000 lignes de code) est environ deux fois plus rapide.IntelliSense in very large files (10k+ lines of code) is roughly twice as fast now.
  • L’avertissement concernant un FSharp.Core obsolète (malgré l’installation du package) n’est plus présent dans les projets de style SDK .NET.The warning for an outdated FSharp.Core (despite the package being installed) is no longer present in .NET SDK-style projects.
  • L’info-bulle de description qui affiche de la documentation XML sur un membre après . dans IntelliSense n’expire plus après 10 secondes.The description tooltip that displays XML documentation for a member after . in IntelliSense no longer times out after 10 seconds.
  • Un bogue où vous ne pouviez pas définir de points d’arrêt dans des arguments de constructeur d’objet a été résolu.A bug where you could not set breakpoints in object constructor arguments has been fixed.
  • Un bogue où un symbole renommé était dupliqué quand il était un paramètre générique a été résolu.A bug where a renamed symbol would be duplicated when it is a generic parameter has been fixed.
  • Les modèles du .NET Framework (modèles F# classiques) consomment désormais FSharp.Core à partir d’un package NuGet pour s’aligner avec les modèles F# .NET SDK.Templates for .NET Framework (classic F# templates) now consume FSharp.Core from a NuGet package, to align with .NET SDK F# templates.
  • La saisie automatique transactionnelle d’accolades est maintenant disponible pour les paires (), [], {}, [||] et [<>].Automatic, transactional brace completion is now available for (), [], {}, [||], and [<>] brace pairs. Nous avons fait ce travail en collaboration avec Gibran Rosa.We did this work in collaboration with Gibran Rosa.
  • Vous pouvez maintenant accéder à la définition avec Ctrl + clic d’un symbole F#.You can now go to definition with Ctrl + Click on an F# symbol. Les paramètres de cette action sont aussi respectés dans la fenêtre Outils > Options.The settings for this gesture are also respected in the Tools > Options window.
  • L’interface utilisateur des performances d’IntelliSense a été modifiée pour autoriser la configuration d’informations typecheck obsolètes sur diverses fonctionnalités de l’IDE.The IntelliSense performance UI has been modified to allow configuration of stale typecheck information for various IDE features. Des explications pour chaque option sont maintenant présentes dans les info-bulles des paramètres.Explanations for each option are now present in tooltips for the settings.
  • La surbrillance de la correspondance d’accolades met correctement en évidence les accolades, corrigée en collaboration avec Vasily Kirichenko.Brace match highlighting now correctly highlights braces, completed in collaboration with Vasily Kirichenko.
  • L’accès à Atteindre la définition est maintenant correct quand un type est défini de manière récursive, avec la contribution de Vasily Kirichenko.Go to definition now navigates correctly when a type is defined recursively, contributed by Vasily Kirichenko.
  • Un bogue où un espace de noms importé automatiquement n’était pas ouvert quand la partie supérieure d’un fichier était vide a été résolu par Vasily Kirichenko.A bug where an auto-imported namespace wasn't opened when the top of a file was empty has been fixed by Vasily Kirichenko.
  • Un bogue où les spécificateurs printf qui contenaient des points n’avaient pas la bonne couleur a été résolu par Vasily Kirichenko.A bug where printf specifiers that contained dots were miscolored has been fixed by Vasily Kirichenko.
  • Un bogue où toutes les ouvertures étaient considérées comme inutilisées dans un module récursif a été résolu par Vasily Kirichenko.A bug where all opens were considered unused inside of a recursive module has been fixed by Vasily Kirichenko.
  • Les performances de l’analyseur Ouvertures inutilisées ont été améliorées considérablement par Vasily Kirichenko.The performance of the Unused Opens analyzer has been improved significantly by Vasily Kirichenko.
  • La saisie semi-automatique d’attributs propose uniquement des options qui sont en fait des attributs, avec la contribution de Vasily Kirichenko.Autocompletion for attributes now only suggests options that are actually attributes, contributed by Vasily Kirichenko.
  • Les info-bulles d’aide sur les signatures sont maintenant générées pour les paramètres statiques Fournisseur de type sur le site d’appel du constructeur, avec la contribution de Vasily Kirichenko.Signature Help tooltips are now generated for Type Provider static parameters at the constructor call site, contributed by Vasily Kirichenko.
  • Un bogue où les types valeur utilisés en tant qu’unités de mesure étaient colorés comme des types référence a été résolu par Vasily Kirichenko.A bug where value types used as units of measure were colored as reference types has been fixed by Vasily Kirichenko.
  • Un bogue où la colorisation sémantique pouvait disparaître de certains fichiers pendant le défilement a été résolu par Vasily Kirichenko.A bug where semantic colorization could disappear for some files while scrolling has been fixed by Vasily Kirichenko.
  • Il existe maintenant une implémentation de CodeLens expérimentale, avec la contribution de Victor Peter Rouven Müller.There is now an experimental CodeLens implementation, contributed by Victor Peter Rouven Müller. Vous pouvez l’activer dans Options > Éditeur de texte > F# > Code Lens.You can turn it on in Options > Text Editor > F# > Code Lens.
  • Un bogue où le service du compilateur F# élidait incorrectement les noms de module dans la documentation XML a été résolu par Sebastian Urban.A bug where the F# compiler service would incorrectly elide the module names in XML documentation has been fixed by Sebastian Urban.
  • Le code qui utilise Dictionary avec ContainsKey et les appels Item suivants a été modifié pour utiliser TryGetValue, par Eugene Auduchinok.Code that uses Dictionary with ContainsKey and subsequent Item calls has been changed to use TryGetValue, by Eugene Auduchinok.
  • Jakob Majoka a également contribué au processus de consommation d’une API différente pour les info-bulles.Jakob Majoka also contributed in the process of consuming a different API for Tooltips.

Améliorations apportées à l’infrastructure, à l’empaquetage et au code open sourceInfrastructure, Packaging, and Open Source Improvements

Nous avons apporté les améliorations suivantes à l’infrastructure, au packaging et aux améliorations Open Source :We made the following enhancements to infrastructure, packaging, and open source improvements:

  • Le compilateur F# distribué avec Visual Studio ne s’installe plus en tant que singleton dans l’emplacement SDK du compilateur F#.The F# compiler distributed with Visual Studio no longer installs as a singleton in the F# Compiler SDK location. Il est désormais côte-à-côte avec Visual Studio, ce qui signifie que les installations côte à côte de Visual Studio présentent enfin de vraies expériences de langage et d’outils de F# côte-à-côte.It is now fully side-by-side with Visual Studio, meaning that side-by-side installations of Visual Studio will finally have truly side-by-side F# tooling and language experiences.
  • Le package NuGet FSharp.Core est maintenant signé.The FSharp.Core NuGet package is now signed.
  • La journalisation ETW a été ajoutée aux outils et au compilateur de F#.ETW logging has been added to the F# tools and compiler.
  • Dans FSharp.Core, les très gros fichiers control.fs/contro.fsi ont été divisés en async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi et observable.fs/observable.fsi.The very large control.fs/contro.fsi files in FSharp.Core have been split into async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi, and observable.fs/observable.fsi.
  • Nous avons ajouté des versions de style SDK .NET de nos artefacts de test de stress sur les performances du projet.WE added .NET SDK-style versions of our project performance stress test artifacts.
  • Nous avons supprimé Newtonsoft.Json de notre base de code, donc vous avez maintenant un package en moins téléchargé pour les contributeurs OSS.We removed Newtonsoft.Json from our codebase, and you now have one less package downloaded for OSS contributors.
  • À présent, nous utilisons les dernières versions de System.Collections.Immutable et System.Reflection.Metadata.We now use the latest versions of System.Collections.Immutable and System.Reflection.Metadata.

Prise en charge des secrets du .NET Framework ASP.NETASP.NET .NET Framework Secrets Support

Pour les projets du .NET Framework ASP.NET qui ciblent .NET Framework 4.7.1 ou ultérieur, vous pouvez maintenant ouvrir et stocker les secrets que vous ne voulez pas dans votre code source dans usersecrets.xml en cliquant avec le bouton droit sur le projet et en sélectionnant « Secrets utilisateur managés ».For ASP.NET .NET Framework projects that target .NET Framework 4.7.1 or higher, you can now open and store secrets you do not want in your source code in usersecrets.xml by right clicking on the project and selecting "Managed User Secrets".

Migrer les paramètres d’une fonction Azure localeMigrate Local Azure Function Settings

La boîte de dialogue « Paramètres d’application managés » disponible dans la page de résumé de publication affiche désormais les valeurs de votre fichier local.settings.json pour vous permettre de les migrer vers votre application de fonction Azure distante hébergée dans Azure.The "Managed Application Settings" dialog available from the publish summary page now displays values from your local.settings.json file and enables you to migrate values to your remote Azure Function app hosted in Azure.

Amélioration de l’Explorateur de testsTest Explorer Improvement

L’Explorateur de tests affiche maintenant un volet récapitulatif de l’état des tests plus complet (volet inférieur de l’Explorateur de tests) quand l’un des regroupements dans la vue de la hiérarchie est sélectionné.Test Explorer now displays a more informative test status summary pane (lower pane of test explorer) when one of the groupings in the hierarchy view is selected. Le volet montre combien de tests ont échoué, réussi ou n’ont pas été exécutés dans ce regroupement.The pane now displays how many tests failed, passed, or not run in that grouping.

Nouvelles fonctionnalités d’extensibilitéNew Extensibility Features

Protocole de serveur de langageLanguage Server Protocol

Visual Studio présente maintenant une prise en charge native du protocole de serveur de langage.Visual Studio now has native support for the Language Server Protocol. Les auteurs d’extension peuvent créer des extensions qui communiquent avec des serveurs de langage existants pour ajouter une autre prise en charge de langage dans Visual Studio.Extension authors can create extensions that communicate with existing language servers to add additional language support to Visual Studio. Les utilisateurs d’extension peuvent installer ces extensions pour commencer à utiliser leur langage préféré dans Visual Studio, tel que Rust.Extension users can install these extensions to start using their favorite language inside Visual Studio like Rust.

Modèle de package asynchroneAsyncPackage Template

Les auteurs d’extension peuvent maintenant utiliser des modèles d’élément pour créer de packages asynchrones afin d’optimiser les performances de leur extension.Extension authors can now use item templates to create AsyncPackages to optimize their extension's performance. Lisez notre documentation pour en savoir plus sur l’utilisation de packages asynchrones.Read our docs to learn more about how to use AsyncPackages.

Packs d’extensionsExtension Packs

Partagez facilement votre ensemble préféré d’extensions ou configurez une nouvelle installation de Visual Studio avec toutes vos extensions en utilisant des pack d’extensions.Easily share your favorite set of extensions or set up a new install of Visual Studio with all your extensions by using extension pack. Les packs d’extension vous permettent de créer une liste d’extensions, de les empaqueter dans une extension et de l’utiliser rapidement pour installer ces extensions en bloc.Extension packs allow you to create a list of extensions, package them in an extension, and use it quickly to install those extensions in bulk.

Publication d’extensions avec la ligne de commandeCommand Line Extension Publishing

Publiez vos extensions sur Visual Studio Marketplace à l’aide d’une ligne de commande.Publish your extensions to the Visual Studio Marketplace using the command line.


Commentaires et suggestionsFeedback & Suggestions

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 suivre vos problèmes sur le site Visual Studio Developer Community, où vous pouvez poser des questions et obtenir des réponses.You can track your issues in the Visual Studio Developer Community, where you can ask questions and find answers. 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 2017Visual Studio 2017 Release Notes History

Pour plus d’informations sur les versions précédentes de Visual Studio 2017, consultez la page Historique des notes de publication de Visual Studio 2017.For more information relating to past versions of Visual Studio 2017, see the Visual Studio 2017 Release Notes History page.


Haut de page
Top of Page