Visual Studio Icon Notes de publication de Visual Studio 2017 version 15.8Visual Studio 2017 version 15.8 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 |


Note

Si vous accédez à cette page à partir d’une version autre que la version anglaise et que vous voulez voir le contenu le plus à jour, visitez cette page de notes de publication en anglais.If you are accessing this page from a non-English language version, and want to see the most up-to-date content, please visit this Release Notes page in English. Vous pouvez modifier la langue de cette page en cliquant sur l’icône en forme de globe dans le pied de page, puis en sélectionnant la langue de votre choix.You can change the language of this page by clicking the globe icon in the page footer and selecting your desired language.


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

Visitez la page visualstudio.com/downloads pour télécharger d’autres produits Visual Studio 2017.Visit the visualstudio.com/downloads page to download other Visual Studio 2017 products.


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 Visual Studio 2017 version 15.8 dans les billets suivants :You can find in-depth information about Visual Studio 2017 version 15.8 releases in the following posts:

Publications de Visual Studio 2017 version 15.8Visual Studio 2017 version 15.8 Releases

Récapitulatif des nouvelles fonctionnalités importantes de la version 15.8Summary of Notable New Features in 15.8

Principaux problèmes corrigés dans la version 15.8Top Issues Fixed in 15.8

Voici les problèmes signalés par les clients et traités dans la version 15.8 :These are the customer-reported issues addressed in 15.8:

Consultez tous les problèmes signalés par les clients et corrigés dans Visual Studio 2017 version 15.8.See all customer-reported issues fixed in Visual Studio 2017 version 15.8.

The Developer Community Portal


Détails des nouveautés de la version 15.8Details of What's New in 15.8

Release Notes Icon Visual Studio 2017 version 15.8.0Visual Studio 2017 version 15.8.0

publiée le 14 août 2018released on August 14, 2018

Nouvelles fonctionnalités de la version 15.8New Features in 15.8

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 Otion
(Figure 1) Option de téléchargement(Figure 1) Download Option

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 sommes passés de plusieurs minutes à quelques secondes pour le déchargement et le rechargement d’un petit ensemble de projets C# et VB dans les grandes solutions.We reduced the time to unload and reload a small set of C# and VB projects in large solutions from minutes to several seconds.
  • Nous avons ajouté une option permettant de désactiver la réouverture des documents qui étaient ouverts dans la session précédente. En effet, la réouverture de certains types de fichiers ou concepteurs peut retarder le chargement des solutions.We 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.

Performance des testsTest Performance

Nous avons amélioré de manière significative les performances lors de l’exécution de quelques tests dans une grande solution avec plusieurs projets de test.We 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!

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.

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 dans un état suspendu :We added the capability to start profiling in a paused state:

    • Vous pouvez désormais démarrer l’outil Utilisation de l’UC dans le Profileur de performances (ALT-F2) dans un état suspendu (Figure 2).The CPU Usage tool in the Performance Profiler (ALT-F2) can now be started in a paused state (Figure 2). Cela peut être utile quand vous attendez un scénario nécessitant un examen de l’utilisation de l’UC.This can be useful while waiting for a scenario worthy of a CPU Usage investigation. Si la collecte de l’utilisation de l’UC est désactivée au démarrage, 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.If CPU usage collection is disabled at startup, 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 results in a smaller amount of data to collect and analyze, thus making your performance investigations more efficient.

    • Pour démarrer une session avec la collecte d’échantillons d’utilisation de l’UC désactivée, cliquez sur l’icône d’engrenage en regard de Utilisation de l’UC dans la page de lancement du Profileur de performances.To start a session with CPU Usage sample collection disabled, click the gear icon next to CPU Usage on the Performance Profiler launch page. Dans la page de propriétés d’Utilisation de l’UC, décochez la case Activer le profilage de l’UC (échantillonnage) et cliquez sur OK pour enregistrer les paramètres.On the CPU Usage property page, uncheck Enable CPU Profiling (Sampling) and click OK to save the settings.

      CPU Usage Tool settings page
      (Figure 2) Paramètres de l’outil Utilisation de l’UC(Figure 2) CPU Usage Tool Settings
    • Une fois que vous démarrez l’application cible (cliquez sur Démarrer dans la page de lancement du Profileur de performances), vous voyez un graphe d’utilisation de l’UC (Figure 3) qui vous permet de contrôler le profilage de l’UC.Once you start the target application (click Start on the Performance Profiler launch page), you will see the CPU utilization graph (Figure 3) which allows you to control CPU profiling. Pour activer la collecte d’échantillons de données de la pile de l’utilisation de l’UC, sélectionnez Activer le profilage de l’UC au milieu de la vue ou cliquez sur le bouton Enregistrer le profil du processeur juste sous le graphe d’utilisation de l’UC.To enable CPU usage sample stack data collection, select Enable CPU profiling in the middle of the view, or click Record CPU Profile just below the CPU utilization graph. Vous pouvez cliquer sur 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 Record CPU Profile 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 3) Graphe d’utilisation de l’UC(Figure 3) CPU Usage Utilization Graph
  • 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 lance 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 initiates 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 identifier les anomalies.You can quickly determine the allocation patterns in your code and identify anomalies. De plus, pour les événements de garbage collection (GC), vous pouvez facilement déterminer les objets qui ont été collectés et conservés, et identifier rapidement les types d’objets qui dominent l’utilisation de la mémoire par l’application.In addition, for Garbage Collection (GC) events, you can easily determine which objects were collected and retained and quickly identify object types that 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.Many 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 un graphe 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 line graph of Live Objects (count), as well as an Object Delta (% change) bar graph.
    • Pour utiliser l’outil Suivi d’allocation d’objets .NET, affichez la page de lancement du Profileur de performances (Figure 4), sélectionnez une cible à profiler (la cible par défaut est le projet de démarrage dans la solution), cochez Suivi d’allocation d’objets .NET sous Outils disponibles, puis cliquez sur Démarrer.To use the .NET Object Allocation Tracking Tool, display the Performance Profiler launch page (Figure 4), select a target to profile (the default target is the startup project in the solution), check .NET Object Allocation Tracking under Available Tools, then click Start.
    Performance Profiler launch page
    (Figure 4) Page de lancement du Profileur de performances(Figure 4) Performance Profiler Launch Page

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.
  • Nous avons ajouté une vue Modules/Fonctions qui affiche des informations sur les performances par module (dll) et par fonction dans un module.We added a Modules/Functions view that 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.
  • Une indication d’instance a été ajoutée au graphe Utilisation de l’UC dans la vue principale de l’outil Utilisation de l’UC.Instance indication has been added 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.

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 > C# > Style de code > Mise en forme > Général.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 avec Outils > Options > Éditeur de texte > C# > Style de code > 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 de 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 + `.
  • Maintenez 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 > Environnement > Clavier et dans le menu déroulant supérieur.You can find these schemes under Tools > Options > Environment > Keyboard and the top drop-down menu.

DébogageDebugging

Cette version contient les améliorations du débogage suivantes :This release contains the following debugging enhancements:

  • Quand plusieurs instances de Visual Studio 2017 sont installées, vous pouvez maintenant sélectionner celle sur laquelle déployer votre extension lors du débogage (Figure 5).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 5). Ainsi, vous pouvez par exemple développer dans le canal des versions de Visual Studio tout en déboguant dans le canal des préversions.That way you can, for example, develop in the Visual Studio release channel while debugging in the preview channel.

    Select your debug instance
    (Figure 5) Sélectionner une instance de débogage(Figure 5) Select Debug Instance
  • Vous pouvez maintenant attacher le Débogueur de capture instantanée directement à partir de la page de résumé de la publication (Figure 6).You can now attach the Snapshot Debugger directly from the Publish summary page (Figure 6).

    Attach Snapshot Debugger from Publish Summary page
    (Figure 6) Attacher le Débogueur de capture instantanée à partir du résumé de la publication(Figure 6) Attach Snapshot Debugger from Publish Summary
  • Nous prenons désormais en charge l’affichage de Tâches gérées par le biais de la fenêtre Tâches pendant le débogage de minidumps avec segment de mémoire.We now support viewing Managed Tasks through the Tasks window while debugging minidumps with heap.

Outils pour les développeurs de la plateforme Windows universelleTools for Universal Windows Platform Developers

Nous avons apporté de nombreuses améliorations importantes au concepteur XAML pour les projets ciblant la plateforme Windows universelle avec une version de plateforme cible de Windows 10 Fall Creators Update (build 16299) ou une version ultérieure.We made many important improvements to the XAML designer for projects targeting the Universal Windows Platform with a target platform version of the Windows 10 Fall Creators Update (build 16299) or later. Ces améliorations sont les suivantes :These improvements include:

  • Vous pouvez maintenant modifier les collections dans l’Inspecteur de propriété.You can now edit collections in the Property Inspector.
  • Le concepteur permet maintenant la modification des styles et des modèles, notamment quand les définitions de ces entités sont définies dans d’autres documents.The designer now allows Templates and Styles to be edited, including when the definitions for those entities are defined in other documents.
  • Les propriétés de type IconElement (comme l’icône dans un AppBarButton) disposent désormais d’un éditeur personnalisé dans l’Inspecteur de propriété, ce qui simplifie la définition de ces propriétés.Properties of type IconElement (such as Icon in an AppBarButton) now have a custom editor in the Property Inspector making these properties easier to set.
  • Le concepteur, l’éditeur et la fonctionnalité Modifier et Continuer doivent maintenant tous fonctionner correctement avec x:DefaultBindMode.The designer, editor, and Edit and Continue should all now work correctly with x:DefaultBindMode.
  • L’expérience du Gestionnaire d’état visuel dans Blend prend désormais en charge AdaptiveTrigger.The Visual State Manager experience in Blend now supports AdaptiveTrigger.

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

Nous avons introduit le langage F# version 4.5 avec cette version.We introduced the 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-uns des points importants avec le langage F# version 4.5 :Here are the some of the highlights with the F# language version 4.5:

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 read-only 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 byref's 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 that was 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 indentation 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 them 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

Outre les fonctionnalités de langage précédemment mentionnées, les améliorations apportées au compilateur F# se trouvent dans F# 4.5.Improvements to the F# compiler in addition to the previously-mentioned language features are in F# 4.5. Elles incluent notamment :These 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).
  • Nous avons résolu un bogue qui entraînait un AccessViolatioNException lors de l’utilisation de yield! avec des énumérables basés sur des structs.We fixed a bug that results in an AccessViolatioNException when using yield! with struct-based enumerables.
  • 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.
  • Nous avons résolu 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é.We fixed a bug 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.
  • Quand des branches d’une correspondance au modèle ne retournent pas la même condition de type, le message d’erreur a été mis à jour par Isaac Abraham pour être plus convivial.When branches of a pattern match do not return the same error message type condition, has been updated to be friendlier by Isaac Abraham.
  • Un bogue qui provoquait une erreur interne lors de la compilation d’une implémentation d’interface qui ne disposait pas d’une implémentation de méthode surchargée a été résolu par Steffen Forkmann.An internal error bug when a 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

Les ajouts suivants apportés à la bibliothèque principale F# sont désormais disponibles :The following additions to the F# Core Library are now available:

  • 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

Cette version inclut des améliorations significatives dans les outils F#, comme l’amélioration des performances et de nouvelles fonctionnalités de l’éditeur.Significant improvements in the F# tools, such as performance enhancements and some new editor features are included this release. Comme toujours, avec un grand nombre de contributions de la communauté Open Source de F#.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, à l’empaquetage et à notre expérience de contribution open source :We made the following enhancements to infrastructure, packaging, and our open source contribution experience:

  • 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 / control.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/control.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é les versions de style du kit SDK .NET de nos artefacts de stress de contrainte de performances de 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.

Améliorations de la conformité et de l’ensemble d’outils C++C++ Conformance and Toolset Improvements

Cette version contient les améliorations des performances et de l’ensemble d’outils C++ suivantes :This release contains the following C++ conformance and toolset improvements:

  • Un nouveau préprocesseur expérimental basé sur les jetons conforme aux normes C++ 11 (y compris les fonctionnalités du préprocesseur C99), activé avec le commutateur /experimental:preprocessor.A new, experimental, token-based preprocessor that conforms to C++11 standards (including C99 preprocessor features), enabled with the /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.
  • 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.
  • 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.

Développement multiplateforme C++C++ Cross-Platform Development

Nous avons ajouté et amélioré le code suivant pour le développement multiplateforme C++ de cette version :We added, improved, and added the following to C++ cross-platform development for this release:

  • Ajout du modèle Ajouter > Nouvel élément pour générer un fichier au format .clang conforme à la convention de codage spécifiée pour ClangFormat dans Outils > Options.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.
  • Ajout de modèles pour simplifier l’ajout de configurations dans CMakeSettings.json (Figure 7).Added templates to simplify adding configurations to CMakeSettings.json (Figure 7).
Configuration templates for CMake
(Figure 7) Modèles de configuration pour CMake(Figure 7) Configuration Templates for CMake

Productivité de C++C++ Productivity

Nous avons apporté les améliorations et avancées suivantes à la productivité de C++ :We made the following enhancements and improvements to C++ productivity:

  • 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.
  • Ajout d’une ampoule de correctif rapide pour convertir des macros de base en constexpr en guise de nouvel outil pour moderniser le code.Added a new quick-fix lightbulb to convert basic macros to constexpr as a new tool to modernize code.
  • IntelliSense pour les modèles vous donne plus de détails sur les arguments de modèle pour tirer pleinement parti d’IntelliSense dans le corps de votre modèle (Figure 8).IntelliSense for templates provide you more details about template arguments to take full advantage of IntelliSense within your template body (Figure 8).
Template IntelliSense
(Figure 8) Modèle IntelliSense(Figure 8) Template IntelliSense
  • En ce moment, nous travaillons à l’actualisation de notre expérience d’analyse de code.We are working to refresh our code analysis experience. Vous pouvez maintenant activer les nouvelles fonctionnalités en cours de développement 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 quand les fichiers sont ouverts ou enregistrés et les résultats sont affichés dans la liste d’erreurs avec un soulignement ondulé vert dans l’éditeur (Figure 9).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 (Figure 9).
In-editor code analysis
(Figure 9) Analyse du code dans l’éditeur(Figure 9) In-editor Code Analysis

Améliorations du débogage C++C++ Debugging Improvements

Nous avons apporté les améliorations de débogage suivantes :We made the following debugging improvements:

  • 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 dans le code utilisateur, quand vous procédez au pas à pas détaillé, le débogueur ignore tout le code système et s’arrête à la première ligne du rappel du code utilisateur (Figure 10).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 (Figure 10).
Just My Code
(Figure 10) Uniquement mon code(Figure 10) Just My Code
  • Les points d’arrêt sur variable peuvent maintenant être définis dans les fenêtres Espion, Espion express, Automatique et Variables locales, ce qui vous permet d’arrêter quand une valeur stockée en mémoire change en quelques clics rapides.Data breakpoints can now be set inside the Watch, Quickwatch, Autos, and Locals windows, allowing you to break when a value stored in memory changes in just a few, short clicks.
  • Lien source vous permet d’incorporer les informations d’un fichier exécutable ou du code source d’origine d’une bibliothèque dans le fichier PDB pendant la compilation.Source Link lets you embed information about an executable or library's original source code into the PDB during compilation.
  • Lors du débogage, la fenêtre de console reste maintenant ouverte par défaut quand le programme termine l’exécution (comme pour l’exécution du programme sans le débogueur).When debugging, the console window now stays open by default when the program terminates execution (similar to running the program without the debugger). Il est possible de revenir à la fermeture automatique de la console dans Outils > Options > Débogage > Général.This behavior can be toggled back to closing the console automatically in Tools > Options > Debugging > General.

Améliorations de JavaScript et TypeScriptJavaScript and TypeScript Improvements

TypeScript 3.0TypeScript 3.0

Visual Studio 2017 version 15.8 inclut désormais TypeScript 3.0 par défaut.Visual Studio 2017 version 15.8 now includes TypeScript 3.0 by default. Pour plus d’informations sur cette version, consultez l’annonce relative au lancement de TypeScript 3.0.For more details on this release, see the TypeScript 3.0 release announcement.

Prise en charge améliorée de Vue.jsImproved Vue.js support

La prise en charge de la bibliothèque Vue.js a été améliorée, notamment la prise en charge des fichiers .vue, également appelés « composants monofichiers ».Support for the Vue.js library has been improved, and in particular support for .vue files, also known as "single file components". Elle offre des améliorations lors de la modification de blocs de script à l’intérieur de fichiers .vue, notamment la prise en charge des blocs de script créés en TypeScript par le biais de l’attribut lang="ts" sur l’élément de script.This provides enhancements when editing script blocks inside .vue files, including support for script blocks authored in TypeScript through the lang="ts" attribute on the script element. (Remarque : Vous devez utiliser un processus de build à l’aide de WebPack ou similaire pour convertir les fichiers .vue en fichiers HTML et JS nécessaires au moment de l’exécution.(Note: A build process using WebPack or similar must be used to convert the .vue files to the HTML and JS files needed at runtime. Pour plus d’informations, consultez la page sur les composants monofichiers).See the Single File Components page for more details).

Si la charge de travail Node.js est installée, il y aura désormais des modèles de « Application web Vue.js de base » sous les chemins « JavaScript / Node.js » ou « TypeScript / Node.js » dans la boîte de dialogue Nouveau projet.If the Node.js workload is installed, there will now be "Basic Vue.js Web Application" templates under the "JavaScript / Node.js" or "TypeScript / Node.js" paths in the New Project dialog. Vous trouverez ci-dessous un exemple de modification de code TypeScript à l’intérieur d’un bloc de script dans un fichier .vue (Figure 11).The below shows an example of editing TypeScript code inside a script block in a .vue file (Figure 11).

Editing a .vue file
(Figure 11) Modification de fichiers .vue(Figure 11) Editing .vue Files

Améliorations relatives à ESLintESLint Improvements

Nous avons réimplémenté la prise en charge d’ESLint pour cette version.We reimplemented ESLint support for this release. ESLint présente les améliorations suivantes :ESLint has the following improvements and enhancements:

  • Au lieu de vérifier (linting) uniquement les fichiers enregistrés, Visual Studio vérifie désormais également les fichiers JavaScript à mesure que vous modifiez.Rather than only linting saved files, Visual Studio will now lint JavaScript files as you edit, as well.
  • Les résultats peuvent être signalés pour tous les fichiers JS dans votre projet, pas simplement pour les fichiers ouverts. S’il y a des parties de votre projet que vous ne souhaitez pas vérifier, vous pouvez désormais utiliser un fichier .eslintignore pour spécifier les répertoires et fichiers qui doivent être ignorés.Results can be reported for all JS files in your project, not just open files; if there are parts of your project you do not want to be linted, an .eslintignore file can now be used to specify directories and files that should be ignored.
  • ESLint a été mis à jour pour utiliser ESLint 4 par défaut, mais si votre projet a une installation locale d’ESLint, il utilisera plutôt cette version.ESLint was updated to use ESLint 4 by default, but if your project has a local installation of ESLint, it will use that version instead.

Vous pouvez désactiver ESLint globalement dans Visual Studio en décochant le paramètre Activer ESLint dans ** Outils > Options > Éditeur de texte > Javascript/Typescript > Linting ** (Figure 12).ESLint may be disabled globally in Visual Studio by unchecking the Enable ESLint setting in the **Tools > Options > Text Editor > Javascript/Typescript > Linting ** (Figure 12).

ESLint Options
(Figure 12) Options ESLint(Figure 12) ESLint Options

Améliorations liées à Ouvrir un dossier pour Node.jsOpen Folder Improvements for Node.js

Il existe de nombreuses améliorations liées à l’utilisation de JavaScript et TypeScript dans le scénario Ouvrir un dossier quand la « charge de travail Node.js » est installée,There are numerous improvements working with JavaScript and TypeScript in the Open Folder scenario when the "Node.js workload" is installed. par exemple gestion des packages NPM, génération TypeScript, lancement et débogage avec Node.exe, exécution de scripts NPM et exécution de tests unitaires.For example, managing NPM packages, building TypeScript, launching and debugging with Node.exe, executing NPM scripts, and running unit tests.

Pour plus d’informations, consultez Développer du code JavaScript et TypeScript dans Visual Studio sans solutions ni projets.See Develop JavaScript and TypeScript code in Visual Studio without solutions or projects} for more information.

Amélioration des performances de l’ÉditeurEditor Performance Improvements

Dans les versions précédentes, toutes les opérations de service de langage JavaScript et TypeScript étaient traitées par un seul processus Node.js.In previous releases, all JavaScript and TypeScript language service operations were serviced by a single Node.js process. Cela pouvait entraîner des retards de l’éditeur si des commandes affectant la saisie de l’utilisateur (par exemple la mise en forme automatique après un saut de ligne) étaient envoyées pendant qu’une opération potentiellement longue (telle que l’analyse du code afin de détecter les erreurs) était déjà en cours.This could cause editor delays if commands that impact user typing (such as automatic formatting after a newline) were sent while a potentially lengthy operation was already in process (such as analyzing code for errors). Pour atténuer ce risque, un processus distinct est désormais utilisé pour les opérations qui affectent le plus la modification.To mitigate this, a separate process is now used for the operations that impact editing the most. Ce processus a beaucoup moins d’impact sur les ressources système que le processus de service de langage existant.This process is significantly lighter on system resources than the existing language service process. Toutefois, si vous souhaitez désactiver le nouveau processus, cochez la case Désactivez le processus de syntaxe dédié dans Outils > Options > Éditeur de texte > JavaScript/TypeScript >Service de langage.However, if you wish to disable the new process, check the Disable dedicated syntax process box in Tools > Options > Text Editor > JavaScript/TypeScript > Language Service.

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

Nous avons ajouté une nouvelle expérience de conteneur Docker pour les projets web ASP.NET Core.We 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 Docker lors de la création du projet (Figure 13) :You can add Docker support when creating the project (Figure 13):

Enable Docker Support
(Figure 13) Activer la prise en charge de Docker(Figure 13) Enable Docker Support

Ou, vous pouvez activer la prise en charge de Docker sur un projet existant par le biais du menu contextuel du projet dans l’Explorateur de solutions (Figure 14).Or, you can enable Docker support to an existing project through the project's context menu in Solution Explorer (Figure 14). 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 14) Ajouter la prise en charge de Docker(Figure 14) Add Docker Support

Visual Studio ajoute également un profil de lancement du débogueur (Figure 15) pour Docker afin de pouvoir déboguer le projet quand il s’exécute dans un conteneur.Visual Studio also adds a debugger launch profile (Figure 15) for Docker so that the project can be debugged while running within a container.

Docker Launch Profile
(Figure 15) Profil de lancement Docker(Figure 15) 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 sélectionner Démarrer ou Démarrer sans débogage dans la liste déroulante Action 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 and 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 les fonctionnalités Docker Compose existantes dans un projet web ASP.NET Core grâce à la nouvelle option Prise en charge de l’orchestrateur de conteneurs (Figure 16).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 16). 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 16) Ajouter la prise en charge de l’orchestration(Figure 16) Add Orchestration Support

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.
  • Quand vous créez un 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 collect telemetry automatically. Si vous choisissez une région qui a également Application Insights, cette option est activée par défaut.If you choose a region that also has Application Insights, it is enabled by default. 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.

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 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.You can also build Xamarin.Mac binding projects. Toutefois, 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.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.

Prise en charge de l’émulateur Android Hyper-VHyper-V Android Emulator Support

Cette version ajoute la prise en charge de l’émulateur Google Android qui est compatible avec Hyper-V quand il est exécuté sur la Mise à jour du 10 avril 2018 de Windows (Figure 17).This release adds support for the Google Android emulator that is compatible with Hyper-V when running on the Windows 10 April 2018 Update (Figure 17). 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 17) Émulateur Android Google et émulateur HoloLens
(Figure 17) Google Android Emulator and HoloLens Emulator

Concepteur Xamarin.AndroidXamarin.Android Designer

Nous avons apporté des améliorations significatives à l’expérience du concepteur pour Xamarin.Android.We made significant improvements to the designer experience for Xamarin.Android. En voici les points principaux :Highlights include:

  • Un éditeur à écran divisé a été introduit pour vous permettre de créer, modifier et prévisualiser vos présentations en même temps (Figure 18).A split-view editor was introduced which allows you to create, edit, and preview your layouts at the same time (Figure 18).
Screenshot of the Xamarin.Android split-view editor.
(Figure 18) Éditeur à écran divisé Xamarin.Android
(Figure 18) Xamarin.Android Split-view Editor
  • Amélioration de l’expérience IntelliSense et de la fiabilité des contrôles personnalisés.Improved IntelliSense experience and reliability of custom controls.
  • Prise en charge des exemples de données pour les valeurs fournies par le système.Sample data support for system provided values.

Générateur d’aperçu Xamarin.FormsXamarin.Forms Previewer

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. Le Générateur d’aperçu Xamarin.Forms fait désormais partie de l’éditeur XAML.The Xamarin.Forms Previewer is now part of the XAML editor. Vous pouvez l’ouvrir et le fermer avec l’icône de développement qui se trouve au bord du volet de l’éditeur.You can open and close it with the expand icon on the edge of the editor pane.

PythonPython

Cette version ajoute les améliorations suivantes pour les développeurs Python :This release adds the following improvements for Python developers:

  • Python IntelliSense utilise maintenant des définitions typeshed afin de fournir des résultats plus complets pour les bibliothèques où la saisie automatique ne peut pas être déduite par analyse statique.Python IntelliSense now uses typeshed definitions to provide richer results for libraries where auto-completions cannot be inferred by static analysis.
  • Le débogueur expérimental, d’abord annoncé dans les préversions 15.7, est maintenant le moteur de débogage par défaut utilisé pour Python. Il offre un débogage plus rapide et plus fiable du code Python.The experimental debugger, first announced in the 15.7 preview releases, is now the default debug engine used for Python, providing faster and more reliable debugging for Python code.
  • Nous avons ajouté la prise en charge de Python 3.7, notamment des correctifs pour activer le débogage, le profilage, ainsi que des fonctionnalités de débogage en mode mixte (multilingue).We have added support for Python 3.7, including fixes to enable debug attach, profiling, and mixed-mode (cross-language) debugging features.
  • Pour plus d’informations sur les fonctionnalités ci-dessus, consultez notre billet de blog Python in Visual Studio 2017 version 15.8.For more information about the above features, be sure to check out our Python in Visual Studio 2017 version 15.8 blog post.

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.

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.

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. En savoir plus sur AsyncPackages.Read more about 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 un 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 an 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.

Kit SDK .NET Core 2.1.400.NET Core SDK 2.1.400

Visual Studio 2017 version 15.8 inclut le SDK .NET Core 2.1.400.Visual Studio 2017 version 15.8 includes .NET Core SDK 2.1.400. Les nouvelles fonctionnalités du SDK sont les suivantes :New SDK features include:

  • Ajout de modèles NUnitAdded NUnit templates
  • Ajout de la prise en charge des outils globaux signésAdded support for signed global tools
  • Amélioration du texte d’aide pour une meilleure clartéImproved help text for better clarity

32 problèmes ont été fermés dans l’interface CLI .NET Core.32 issues were closed on the .NET Core CLI.
20 problèmes ont été fermés dans le kit SDK .NET Core.20 issues were closed on the .NET Core SDK.

Contrôle de code sourceSource Control

Pour les projets .NET Core, les fichiers ajoutés directement au projet par le biais de l’Explorateur de fichiers affichent désormais les bonnes icônes de suivi Git et TFS dans l’Explorateur de solutions sans qu’il soit nécessaire de recharger la solution.For .NET Core projects, files added directly to the project through File Explorer will now show the correct Git and TFS tracking icons in the Solution Explorer without needing to reload the solution.

Extension de l’adaptateur de test .NET.NET Test Adapter Extension

L’adaptateur de test .NET présente le changement cassant et la dépréciation suivants :The .NET Test Adapter has the following breaking change and deprecation:

  • Changement cassant : Tous les projets de test doivent inclure leur référence d’adaptateur de test .NET NuGet 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 frameworks de test .NET ont publié leurs adaptateurs dans les packages NuGet et se sont départis des extensions Visual Studio..NET test frameworks have been releasing their adapters in NuGet packages and moving away from Visual Studio extensions. La livraison d’adaptateurs de test .NET par le biais d’extensions est dépréciée, mais toujours prise en charge.The support for .NET test adapters delivered through extensions is deprecated, but still supported. Cela signifie que deux nouvelles options sont disponibles dans Outils > Options > Test.This means that two new options are 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 d’assembly de test (où se trouve la référence d’adaptateur de test NuGet) 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 seconde option permet à Visual Studio de « se replier » à l’ancien comportement et de rechercher les extensions d’adaptateur de test pour les projets qui n’ont pas de référence d’adaptateur de test NuGet.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.
  • Remarque : 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.

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

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

Différer le chargement de packageDelay Package Load

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 - Avis de sécuritéVisual Studio 2017 version 15.8 Security Advisory Notices

Visual Studio 2017 version 15.8.7 Service Release -- publiée le 10 octobre 2018Visual Studio 2017 version 15.8.7 Service Release -- released on October 10, 2018

CVE-2018-8292Vulnérabilité sur la divulgation d’informations .NET CoreCVE-2018-8292 .NET Core Information Disclosure Vulnerability

Il existe une vulnérabilité de contournement d’une fonctionnalité de sécurité dans .NET Core quand les informations d’authentification HTTP sont exposées par inadvertance dans une requête sortante qui rencontre une redirection HTTP.A security feature bypass vulnerability exists in .NET Core when HTTP authentication information is inadvertently exposed in an outbound request that encounters an HTTP redirect. Un attaquant qui parvient à exploiter cette vulnérabilité peut utiliser les informations pour compromettre davantage l’application web.An attacker who successfully exploited this vulnerability could use the information to further compromise the web application. La mise à jour de sécurité élimine la vulnérabilité en corrigeant la façon dont les applications .NET Core gèrent les redirections HTTP.The security update addresses the vulnerability by correcting how .NET Core applications handles HTTP redirects.

Visual Studio 2017 version 15.8.4 Service Release -- publiée le 11 septembre 2018Visual Studio 2017 version 15.8.4 Service Release -- released on September 11, 2018

CVE-2018-8409 Vulnérabilité de déni de service .NET CoreCVE-2018-8409 .NET Core Denial Of Service Vulnerability

Une vulnérabilité de déni de service existe dans .NET Core 2.1 quand System.IO.Pipelines gère incorrectement les requêtes.A denial of service vulnerability exists in .NET Core 2.1 when System.IO.Pipelines improperly handles requests. Un attaquant qui parvenait à exploiter cette vulnérabilité pouvait provoquer un déni de service sur une application utilisant System.IO.Pipelines.An attacker who successfully exploited this vulnerability could cause a denial of service against an application that is leveraging System.IO.Pipelines. La vulnérabilité peut être exploitée à distance, sans authentification.The vulnerability can be exploited remotely, without authentication. Un attaquant distant non authentifié pouvait exploiter cette vulnérabilité en émettant des requêtes spécialement conçues pour une application.A remote unauthenticated attacker could exploit this vulnerability by providing specially crafted requests to the application.

CVE-2018-8409 Vulnérabilité de déni de service ASP.NET CoreCVE-2018-8409 ASP.NET Core Denial Of Service Vulnerability

Une vulnérabilité de déni de service existe dans ASP.NET Core 2.1 qui gère incorrectement les requêtes web.A denial of service vulnerability exists in ASP.NET Core 2.1 that improperly handles web requests. Un attaquant qui parvenait à exploiter cette vulnérabilité pouvait provoquer un déni de service sur une application web ASP.NET Core.An attacker who successfully exploited this vulnerability could cause a denial of service against an ASP.NET Core web application. La vulnérabilité peut être exploitée à distance, sans authentification.The vulnerability can be exploited remotely, without authentication. Un attaquant distant non authentifié pouvait exploiter cette vulnérabilité en émettant des requêtes web spécialement conçues pour l’application ASP.NET Core.A remote unauthenticated attacker could exploit this vulnerability by providing a specially crafted web requests to the ASP.NET Core application.

Visual Studio 2017 version 15.8 -- publiée le 14 août 2018Visual Studio 2017 version 15.8 -- released on August 14, 2018

CVE-2018-0952 Vulnérabilité liée à l’élévation de privilèges du collecteur standard du hub de diagnosticCVE-2018-0952 Diagnostic Hub Standard Collector Elevation of Privilege Vulnerability

Il existe une vulnérabilité liée à l’élévation de privilèges dans un service Visual Studio qui peut entraîner l’octroi de privilèges système à un utilisateur non-administrateur lors de l’écriture de fichiers.An elevation of privilege vulnerability exists in a visual studio service, which can lead to system privileges by a non-admin user when writing files. Un attaquant qui exploiterait cette vulnérabilité pourrait écrire des fichiers en tant que fichiers système tout en ayant uniquement un accès de niveau utilisateur.An attacker who took advantage of this could write files as system while only having user level access. Cette mise à jour de sécurité résout ce problème en empruntant l’identité de l’utilisateur actuel pour valider l’accès à l’emplacement du fichier.This security update addresses this issue by impersonating the current user to validate access to the file location.

Visual Studio 2017 version 15.8 Préversion 4 -- publiée le 10 juillet 2018Visual Studio 2017 version 15.8 Preview 4 -- released on July 10, 2018

CVE-2018-8172 Vulnérabilité liée à l’exécution de code à distance de Visual StudioCVE-2018-8172 Visual Studio Remote Code Execution Vulnerability

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.

CVE-2018-8260 Vulnérabilité liée à l’exécution de code à distance du .NET FrameworkCVE-2018-8260 .NET Framework Remote Code Execution Vulnerability

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 actuel.A remote code execution vulnerability exists in .NET software that 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.

CVE-2018-8232 Vulnérabilité liée à la falsification de .NET Microsoft Macro AssemblerCVE-2018-8232 .NET Microsoft Macro Assembler Tampering Vulnerability

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.

CVE-2018-8171 Vulnérabilité liée au contournement d’une fonctionnalité de sécurité d’ASP.NET CoreCVE-2018-8171 ASP.NET Core Security Feature Bypass Vulnerability

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.

Visual Studio 2017 version 15.8 Préversion 3 -- publiée le 26 juin 2018Visual Studio 2017 version 15.8 Preview 3 -- released on June 26, 2018

CVE-2018-11235 Avis de sécurité Microsoft concernant une faille de sécurité GitCVE-2018-11235 Microsoft Security Advisory for Git Security Vulnerability

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.

Visual Studio 2017 version 15.8 Préversion 1 -- publiée le 8 mai 2018Visual Studio 2017 version 15.8 Preview 1 -- released on May 08, 2018

CVE-2018-0765 Avis de sécurité Microsoft concernant une vulnérabilité de déni de service .NET CoreCVE-2018-0765 Microsoft Security Advisory for .NET Core Denial of Service Vulnerability

  • 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.1Visual Studio 2017 version 15.8.1

publiée le 17 août 2018released on August 17, 2018

Principaux problèmes corrigés dans la version 15.8.1Top Issues Fixed in 15.8.1

Voici les problèmes résolus dans la version 15.8.1 :These are the issues addressed in 15.8.1:

  • Correction d’un problème qui faisait que Visual Studio se fermait inopinément quand une fenêtre de navigateur était fermée pendant le débogage d’un projet web.Fixed an issue where Visual Studio would close unexpectedly when a browser window was closed while debugging a Web project.

Release Notes Icon Visual Studio 2017 version 15.8.2Visual Studio 2017 version 15.8.2

publiée le 28 août 2018released on August 28, 2018

Principaux problèmes corrigés dans la version 15.8.2Top Issues Fixed in 15.8.2

Voici les problèmes signalés par les clients et traités dans la version 15.8.2 :These are the customer-reported issues addressed in 15.8.2:


Release Notes Icon Visual Studio 2017 version 15.8.3Visual Studio 2017 version 15.8.3

publiée le 6 septembre 2018released on September 6, 2018

Principaux problèmes corrigés dans la version 15.8.3Top Issues Fixed in 15.8.3

Voici les problèmes signalés par les clients et traités dans la version 15.8.3 :These are the customer-reported issues addressed in 15.8.3:


Release Notes Icon Visual Studio 2017 version 15.8.4Visual Studio 2017 version 15.8.4

publiée le 11 septembre 2018released on September 11, 2018

Principaux problèmes corrigés dans la version 15.8.4Top Issues Fixed in 15.8.4

Voici les problèmes signalés par les clients et traités dans la version 15.8.4 :These are the customer-reported issues addressed in 15.8.4:


Release Notes Icon Visual Studio 2017 version 15.8.5Visual Studio 2017 version 15.8.5

publiée le 20 septembre 2018released on September 20, 2018

Récapitulatif des nouveautés de la version 15.8.5Summary of What's New in 15.8.5

  • Visual Studio Tools pour Xamarin prend désormais en charge Xcode 10.Visual Studio Tools for Xamarin now supports Xcode 10.

Principaux problèmes corrigés dans la version 15.8.5Top Issues Fixed in 15.8.5

Voici les problèmes signalés par les clients et traités dans la version 15.8.5 :These are the customer-reported issues addressed in 15.8.5:

Détails des nouveautés de la version 15.8.5Details of What's New in 15.8.5

Visual Studio Tools pour XamarinVisual Studio Tools for Xamarin

Visual Studio Tools pour Xamarin prend désormais en charge Xcode 10, qui vous permet de générer et déboguer des applications pour iOS 12, tvOS 12 et watchOS 5.Visual Studio Tools for Xamarin now supports Xcode 10 that allows you to build and debug apps for iOS 12, tvOS 12, and watchOS 5. Pour plus d’informations sur les nouvelles fonctionnalités disponibles, voir Guide pratique pour se préparer à iOS 12 et notre introduction à iOS 12.See how to get ready for iOS 12 and our introduction to iOS 12 for more details on the new features available.


Release Notes Icon Visual Studio 2017 version 15.8.6Visual Studio 2017 version 15.8.6

publiée le 2 octobre 2018released on October 02, 2018

Récapitulatif des nouveautés de la version 15.8.6Summary of What's New in 15.8.6

Principaux problèmes corrigés dans la version 15.8.6Top Issues Fixed in 15.8.6

Voici les problèmes signalés par les clients et traités dans la version 15.8.6 :These are the customer-reported issues addressed in 15.8.6:

Détails des nouveautés de la version 15.8.6Details of What's New in 15.8.6

SDK Windows 10 le plus récent pour les développeurs de la plateforme Windows universelleLatest Windows 10 SDK for Universal Windows Platform developers

Le Kit SDK Windows 10 (build 17763) est désormais disponible sous forme de composant facultatif pour la charge de travail de développement pour la plateforme Windows universelle.The latest Windows 10 SDK (build 17763) is now available as an optional component for the Universal Windows Platform development workload. Vous pouvez ajouter ce SDK à la charge de travail en cochant la case SDK Windows 10 (10.0.17763.0).You can add this SDK to the workload by selecting the Windows 10 SDK (10.0.17763.0) checkbox.


Release Notes Icon Visual Studio 2017 version 15.8.7Visual Studio 2017 version 15.8.7

publiée le 10 octobre 2018released on October 10, 2018

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

Azure DevOpsAzure DevOps

Visual Studio Team Services devient Azure DevOps !Visual Studio Team Services is now Azure DevOps! Vous verrez ce nouveau nom de produit dans Team Explorer et en référence dans Visual Studio.You will see this new branding in Team Explorer and in references across Visual Studio.

Vulnérabilité sur la divulgation d’informations .NET Core.NET Core Information Disclosure Vulnerability

Nous avons résolu une faille de sécurité concernant la divulgation d’informations .NET Core.We have addressed a security vulnerability regarding .NET Core information disclosure.


Release Notes Icon Visual Studio 2017 version 15.8.8Visual Studio 2017 version 15.8.8

Publication : 24 octobre 2018released on October 24, 2018

Principaux problèmes corrigés dans la version 15.8.8Top Issues Fixed in 15.8.8

Voici les problèmes signalés par les clients et traités dans 15.8.8 :These are the customer-reported issues addressed in 15.8.8:


Release Notes Icon Visual Studio 2017 version 15.8.9Visual Studio 2017 version 15.8.9 New Release icon

Publication : 2 novembre 2018released on November 2, 2018

Principaux problèmes corrigés dans la version 15.8.9Top Issues Fixed in 15.8.9

Voici les problèmes signalés par les clients et traités dans la version 15.8.9 :These are the customer-reported issues addressed in 15.8.9:


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


CommentairesFeedback

Nous aimerions connaître votre opinion !We would love to hear from you! Pour tout problème, signalez-les en utilisant l’option Signaler un problème en haut à droite du programme d’installation ou de l’IDE Visual Studio.For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. La clé publique du signataire doit être fournie à la classeThe Feedback Icon icône se trouve en haut à droite.icon is located in the upper right-hand corner. Vous pouvez 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 faire une suggestion de produit via UserVoice ou obtenir une aide gratuite pour vos installations avec notre support Live Chat.You can also make a product suggestion through UserVoice or 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