Visual Studio IconNotes de publication de Visual Studio 2017 version 15.8


Communauté des développeurs | Configuration système requise | Compatibilité | Code distribuable | Termes du contrat de licence | Blogs | Problèmes connus



Remarque

Il ne s’agit pas de la dernière version de Visual Studio. Pour télécharger la version la plus récente, veuillez vous rendre sur le site de Visual Studio.


Délai de prise en charge

Cette version n’est plus prise en charge. Pour plus d’informations sur la prise en charge de Visual Studio, consultez la Stratégie de prise en charge pour Visual Studio 2017.

Reportez-vous à la version la plus récente des notes de publication ou rendez-vous sur visitez le site de Visual Studio pour télécharger la version prise en charge de Visual Studio 2017 la plus récente.

Blog Visual Studio

Le blog Visual Studio est la source officielle où l’équipe d’ingénierie de Visual Studio partage des informations sur le produit. Vous trouverez des informations détaillées sur Visual Studio 2017 version 15.8 dans les billets suivants :

Publications de Visual Studio 2017 version 15.8

Récapitulatif des nouvelles fonctionnalités importantes de la version 15.8

Principaux problèmes corrigés dans la version 15.8

Voici les problèmes signalés par les clients et traités dans la version 15.8 :

Consultez tous les problèmes signalés par les clients et corrigés dans Visual Studio 2017 version 15.8.

The Developer Community Portal


Détails des nouveautés de la version 15.8

Release Notes IconVisual Studio 2017 version 15.8.0

publiée le 14 août 2018

Nouvelles fonctionnalités de la version 15.8

Installer

Vous pouvez désormais télécharger tous les fichiers d’installation avant de commencer votre installation.

  • Pour utiliser cette nouvelle option, sélectionnez l’option « Tout télécharger, puis installer » dans le programme d’installation (Figure 1). Nous vous suggérons cette option si vous avez une connexion Internet plus lente.
  • L’option par défaut reste « Installer pendant le téléchargement ». Elle effectue le téléchargement et l’installation en parallèle.
Download Otion
(Figure 1) Option de téléchargement

Performances

Cette version contient les améliorations des performances suivantes :

  • 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.
  • 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.
  • 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.
    • Activez/désactivez cette option dans Outils > Options > Projets > Solutions > Général.

Tester les performances

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

Amélioration du niveau de performance de Visual Basic

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.

Profilage des performances

Cette version comprend les améliorations du profilage des performances suivantes :

  • Nous avons ajouté la possibilité de démarrer le profilage dans un état suspendu :

    • 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). Cela peut être utile quand vous attendez un scénario nécessitant un examen de l’utilisation de l’UC. 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. 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.

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

      CPU Usage Tool settings page
      (Figure 2) Paramètres de l’outil Utilisation de l’UC
    • 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. 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. 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. 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.

      CPU Usage Tool monitoring view
      (Figure 3) Graphe d’utilisation de l’UC
  • Nous avons ajouté un outil Suivi d’allocation d’objets .NET :

    • L’outil Suivi d’allocation d’objets .NET joint la famille d’outils disponibles à partir du Profileur de performances. 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. 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. Vous pouvez rapidement déterminer les modèles d’allocation dans votre code et identifier les 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.
    • C’est particulièrement utile pour les writers d’API afin de réduire les 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. 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).
    • 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.
    Performance Profiler launch page
    (Figure 4) Page de lancement du Profileur de performances

Profilage du niveau de performance (Utilisation de l’UC)

Cette version contient les améliorations suivantes de l’outil Utilisation de l’UC du Profileur de performances (disponible avec ALT-F2) :

  • La vue Arborescence des appels affiche désormais par défaut l’exécution asynchrone par pile des appels logiques. 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.
  • Nous avons ajouté une vue Modules/Fonctions qui affiche des informations sur les performances par module (dll) et par fonction dans un 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é.
  • 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. 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.

Productivité

Cette version contient les améliorations de la productivité suivantes :

  • 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#. Configurez le nettoyage en accédant à Outils>Options>Éditeur de texte>C#>Style de code>Mise en forme>Général.
  • Nous avons ajouté des refactorisations et des actions rapides à l’aide de Ctrl + . ou Alt + Enter :
    • L’instruction Invert If vous permet d’inverser votre logique dans les instructions if-else. Placez votre curseur dans le mot clé if pour déclencher cette refactorisation.
    • 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.
    • Supprimer les parenthèses inutiles supprime les parenthèses qui entourent les opérateurs binaires qui ne sont pas indispensables pour la compilation. Vous pouvez configurer cette règle de style avec Outils> Options>Éditeur de texte>C#>Style de code>Général ou .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 :
      • 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 :
    • 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.
    • 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).
    • Atteindre le membre (Ctrl+T, M) est désormais limité par défaut au fichier. Vous pouvez rétablir la valeur par défaut dans la solution en basculant la Portée sur Document actif (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. Cela vous permet d’ajouter, de modifier ou de supprimer du texte simultanément à plusieurs endroits.
    • Insérez des signes insertion avec Ctrl+Alt+Clic gauche de la souris.
    • Ajoutez une sélection et un signe insertion à l’emplacement suivant correspondant à la sélection actuelle avec Maj+Alt+Inser.
    • Pour obtenir la liste complète des actions, consultez Modifier > Signes insertion multiples.
  • Accédez à un menu de navigation contextuel avec Alt+'.
  • Maintenez la cohérence de vos combinaisons de touches avec deux nouveaux profils de clavier : Visual Studio Code et ReSharper (Visual Studio). Ces schémas sont disponibles sous Outils > Options > Environnement > Clavier et dans le menu déroulant supérieur.

Débogage

Cette version contient les améliorations du débogage suivantes :

  • 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). 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.

    Select your debug instance
    (Figure 5) Sélectionner une instance de débogage
  • Vous pouvez maintenant attacher le Débogueur de capture instantanée directement à partir de la page de résumé de la publication (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
  • 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.

Outils pour les développeurs de la plateforme Windows universelle

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. Ces améliorations sont notamment les suivantes :

  • Vous pouvez maintenant modifier les collections dans l’Inspecteur de propriété.
  • 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.
  • 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.
  • Le concepteur, l’éditeur et la fonctionnalité Modifier et Continuer doivent maintenant tous fonctionner correctement avec x:DefaultBindMode.
  • L’expérience du Gestionnaire d’état visuel dans Blend prend désormais en charge AdaptiveTrigger.

Outils F# 4.5 et F# pour Visual Studio

Nous avons introduit le langage F# version 4.5 avec cette version. Cela correspond également à la nouvelle famille 4.5.x de FSharp.Core (la bibliothèque principale F#). Vous pouvez lire les spécifications de chacun de ces changements dans le référentiel RFC F#. De nombreuses améliorations ont également été apportées aux outils F# pour Visual Studio avec cette version.

F# 4.5

Voici quelques-uns des points importants avec le langage F# version 4.5 :

Prise en charge de Span<'T>

Nous avons implémenté Span<'T> et des fonctionnalités associées afin de permettre une consommation et une production efficaces des API à l’aide de constructions de type Span, Memory et ref avec F#. Les fonctionnalités disponibles à ces fins sont notamment les suivantes :

  • Nouveau type voidptr.
  • Nouvelles fonctions NativePtr.ofVoidPtr et NativePtr.toVoidPtr dans 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. Cela correspond à in ref et à out ref en C#.
  • Possibilité de produire des structsByRefLike (comme Span et ReadOnlySpan).
  • Possibilité de produire des structsIsReadOnly.
  • Déréférencement implicite des retours byref et inref à partir de méthodes.
  • Possibilité de produire des membres d’extension sur 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. Nous apportons ce changement pour rendre la fonctionnalité conforme à la façon dont C# gère les retours ref. 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é.

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

Vous pouvez en savoir plus sur les constructions de type span et ref dans les RFC pour cet ensemble de fonctionnalités.

Match! dans les expressions de calcul

F# 4.5 introduit match!, un nouveau mot clé à utiliser dans les expressions de calcul, entièrement réalisé par John Wostenberg. Ce liant syntaxique équivaut à un let! suivi d’un match sur le résultat. Vous pouvez en savoir plus dans la RFC pour 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 tableau

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. 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. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.

Autorisation de mise en retrait sur les crochets de liste et de tableau

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. Cette précédente exigence a toujours été assez déroutante, en particulier pour les débutants en F#. De plus, elle n’est pas applicable pour les expressions de séquence F#. Cela met les expressions de liste et de tableau dans le même état cohérent que les expressions de séquence. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.

Cas d’énumération émis comme publics

F# 4.5 émet désormais les incidents d’énumération comme publics en toutes circonstances, pour se conformer à la façon dont C# émet les incidents d’énumération. 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 a été émise. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.

Améliorations du compilateur F#

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. Il s’agit notamment des paramètres suivants :

  • 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).
  • 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.
  • Il est désormais possible d’hériter à nouveau de FSharpFunc.
  • Les appels tail sont désactivés par défaut pour les builds de débogage de F# pour .NET Core. Ils sont activées pour la mise en production et correspondent ainsi au compilateur F# de bureau.
  • 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. Cela vous permet d’effectuer l’équivalent de la redirection d’assembly sur .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é. Le message d’erreur se propage désormais.
  • F# respecte désormais l’indicateur WarningsNotAsErrors que vous pouvez définir dans les fichiers projet.
  • 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.
  • 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.
  • La copie inutile de certains tableaux dans la phase d’analyse du compilateur a été supprimée par Gauthier Segay.
  • Les 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 incident non couvert, grâce à la contribution de John Wostenberg.
  • '#nowarn « 2003 » est maintenant respecté, grâce à la contribution de 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.
  • Un bogue de structure de données QueueList interne a été résolu par Steffen Forkmann.
  • Plusieurs optimisations et efforts de nettoyage du code de plus petite envergure ont été fournis par Steffen Forkmann, Eugene Auduchinok et ncave.

Bibliothèque principale F# 4.5.x

Les ajouts suivants apportés à la bibliothèque principale F# sont désormais disponibles :

  • Un travail considérable a été effectué pour améliorer les traces de pile pour les expressions de calcul async { }. Vous devez maintenant être en mesure de voir le code utilisateur et les numéros de ligne utilisateur dans les traces de pile. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.
  • 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#. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.
  • 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. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.
  • TryGetValue est maintenant un nouveau membre sur le type de mappage F#. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.
  • Nous avons corrigé l’utilisation élevée de l’UC lors du premier appel de MailboxProcessor.TryReceive.
  • La comparaison de bool utilise maintenant une comparaison générique rapide, grâce à la contribution de Vasily Kirichenko.
  • Le texte récapitulatif pour Array.allPairs a été mis à jour pour être correct, grâce à la contribution de Patrick McDonald

Améliorations des outils F#

Cette version inclut des améliorations significatives des outils F#, comme l’amélioration du niveau de performance et de nouvelles fonctionnalités de l’éditeur. Comme toujours, avec un grand nombre de contributions de la communauté Open Source de F#. Voici les points principaux :

  • 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.
  • 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. Désormais, IntelliSense dans les fichiers très volumineux (plus de 10 000 lignes de code) est environ deux fois plus rapide.
  • 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.
  • 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.
  • 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.
  • Un bogue où un symbole renommé était dupliqué quand il était un paramètre générique a été résolu.
  • 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# du  SDK .NET.
  • La saisie automatique transactionnelle d’accolades est maintenant disponible pour les paires (), [], {}, [||] et [<>]. Nous avons fait ce travail en collaboration avec Gibran Rosa.
  • Vous pouvez maintenant accéder à la définition avec Ctrl + clic sur un symbole F#. Les paramètres de cette action sont aussi respectés dans la fenêtre Outils > Options.
  • 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. Des explications pour chaque option sont maintenant présentes dans les info-bulles des paramètres.
  • La surbrillance de la correspondance d’accolades met correctement en évidence les accolades, corrigée en collaboration avec 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.
  • 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.
  • Un bogue où les spécificateurs printf qui contenaient des points n’avaient pas la bonne couleur a été résolu par 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.
  • Les performances de l’analyseur Ouvertures inutilisées ont été améliorées considérablement par Vasily Kirichenko.
  • La saisie semi-automatique d’attributs propose uniquement des options qui sont en fait des attributs, avec la contribution de 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.
  • 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.
  • Un bogue où la colorisation sémantique pouvait disparaître de certains fichiers pendant le défilement a été résolu par Vasily Kirichenko.
  • Il existe maintenant une implémentation de CodeLens expérimentale, avec la contribution de Victor Peter Rouven Müller. Vous pouvez l’activer dans Options > Éditeur de texte > 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.
  • Le code qui utilise Dictionary avec ContainsKey et les appels Item suivants a été modifié pour utiliser TryGetValue, par Eugene Auduchinok.
  • Jakob Majoka a également contribué au processus de consommation d’une API différente pour les info-bulles.

Améliorations apportées à l’infrastructure, à l’empaquetage et au code open source

Nous avons apporté les améliorations suivantes à l’infrastructure, à l’empaquetage et à notre expérience de contribution open source :

  • Le compilateur F# distribué avec Visual Studio ne s’installe plus en tant que singleton dans l’emplacement du SDK du compilateur F#. Il est désormais côte-à-côte avec Visual Studio, ce qui signifie que les installations côte à côte de Visual Studio proposent enfin de vraies expériences de langage et d’outils F# côte-à-côte.
  • Le package NuGet FSharp.Core est maintenant signé.
  • La journalisation ETW a été ajoutée aux outils et au compilateur F#.
  • 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.
  • Nous avons ajouté les versions de style du kit SDK .NET de nos artefacts de stress de contrainte de performances de projet.
  • 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.
  • À présent, nous utilisons les dernières versions de System.Collections.Immutable et System.Reflection.Metadata.

Améliorations de la conformité et de l’ensemble d’outils C++

Cette version contient les améliorations des performances et de l’ensemble d’outils C++ suivantes :

  • 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. 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.
  • 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). Pour plus d’informations sur les solutions d’atténuation de Spectre, consultez le blog de l’équipe Visual C++.
  • Deux nouveaux ajouts à l’optimiseur SSA portant sur la génération de code C++ moderne : élimination de magasin redondant et pliage des branches redondantes.
  • 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.

Développement multiplateforme C++

Nous avons ajouté et amélioré le code suivant pour le développement multiplateforme C++ de cette version :

  • 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. 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.
  • Mise à jour de la version livrée de clang-format.exe avec la version 6.0.0.
  • Modèles pour simplifier l’ajout de configurations dans CppProperties.json.
  • Ajout de modèles pour simplifier l’ajout de configurations dans CMakeSettings.json(Figure 7).
Configuration templates for CMake
(Figure 7) Modèles de configuration pour CMake

Productivité de C++

Nous avons apporté les améliorations et avancées suivantes à la productivité de C++ :

  • Les info-bulles Info express C++ des macros montrent maintenant ce qu’elles développent, plutôt que juste leur définition. 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.
  • Ajout d’une ampoule de correctif rapide pour convertir des macros de base en constexpr en guise de nouvel outil pour moderniser le 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).
Template IntelliSense
(Figure 8) Modèle IntelliSense
  • En ce moment, nous travaillons à l’actualisation de notre expérience d’analyse de code. 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. 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).
In-editor code analysis
(Figure 9) Analyse du code dans l’éditeur

Améliorations du débogage C++

Nous avons apporté les améliorations de débogage suivantes :

  • 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. 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. 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).
Just My Code
(Figure 10) Uniquement mon 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.
  • 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.
  • 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). Il est possible de revenir à la fermeture automatique de la console dans Outils > Options > Débogage > Général.

Améliorations de JavaScript et TypeScript

TypeScript 3.0

Visual Studio 2017 version 15.8 inclut désormais TypeScript 3.0 par défaut. Pour plus d’informations sur cette version, consultez l’annonce relative au lancement de TypeScript 3.0.

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

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 ». 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. (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. Pour plus d’informations, consultez la page sur les composants monofichiers).

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

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

Améliorations relatives à ESLint

Nous avons réimplémenté la prise en charge d’ESLint pour cette version. ESLint présente les améliorations suivantes :

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

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 Options
(Figure 12) Options ESLint

Améliorations liées à Ouvrir un dossier pour 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, 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.

Pour plus d’informations, consultez Développer du code JavaScript et TypeScript dans Visual Studio sans solutions ni projets.

Amélioration des performances de l’Éditeur

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. 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. Pour atténuer ce risque, un processus distinct est désormais utilisé pour les opérations qui affectent le plus la modification. Ce processus a beaucoup moins d’impact sur les ressources système que le processus de service de langage existant. 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.

Outils web Visual Studio

Le Gestionnaire de bibliothèques est une nouvelle fonctionnalité de Visual Studio 2017. Il vous permet de gérer les bibliothèques côté client dans vos projets web.

Outils de conteneur

Nous avons ajouté une nouvelle expérience de conteneur Docker pour les projets web ASP.NET Core. 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.

Vous pouvez ajouter la prise en charge de Docker lors de la création du projet (Figure 13) :

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

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). Une fois fait, Visual Studio crée un fichier Dockerfile dans le projet. Vous avez la possibilité de choisir Windows ou Linux.

Add Docker Support
(Figure 14) Ajouter la prise en charge de Docker

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.

Docker Launch Profile
(Figure 15) Profil de lancement Docker

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

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.

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

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

Améliorations de la publication

Cette version contient les améliorations de publication suivantes :

  • Quand vous publiez un conteneur Docker dans un registre de conteneurs, vous pouvez maintenant personnaliser le mot clé de l’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.
  • Quand vous créez un service d’application Azure, vous pouvez également configurer Application Insights pour collecter automatiquement la télémétrie. Si vous choisissez une région qui a également Application Insights, cette option est activée par défaut. 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.
  • Lors de la publication de projets Azure Functions, vous pouvez choisir de publier avec la nouvelle fonctionnalité Run-From-Zip.

Visual Studio Tools pour Xamarin

Cette version contient les mises à jour suivantes pour Xamarin :

  • Nous avons ajouté la prise en charge de Xcode 9.4.
  • Lorsque vous créez un projet Xamarin.Forms, l’option de partage de code par défaut est maintenant .NET Standard. L’option de projet partagé est toujours disponible.
  • Nous avons apporté des améliorations aux builds incrémentielles Android. 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. 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. 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. En nettoyant le projet, vous pouvez récupérer l’espace disque utilisé par les fichiers conservés.
  • Nous avons ajouté une prise en charge minimale des projets de liaison Xamarin.Mac dans Visual Studio 2017. Ainsi, Visual Studio peut charger et reconnaître les projets de liaison Xamarin.Mac comme pris en charge. Vous pouvez également créer des projets de liaison Xamarin.Mac. 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.

Prise en charge de l’Émulateur Android Hyper-V

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

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
(Figure 17) Émulateur Android Google et émulateur HoloLens

Designer Xamarin.Android

Nous avons apporté des améliorations significatives à l’expérience du concepteur pour Xamarin.Android. Parmi les points clés :

  • 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).
Screenshot of the Xamarin.Android split-view editor.
(Figure 18) Éditeur à écran divisé Xamarin.Android
  • Amélioration de l’expérience IntelliSense et de la fiabilité des contrôles personnalisés.
  • Prise en charge des exemples de données pour les valeurs fournies par le système.

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

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é. 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. Vous pouvez également glisser-déplacer une commande dans l’éditeur de code XAML pour l’ajouter dans la page. Le Générateur d’aperçu Xamarin.Forms fait désormais partie de l’éditeur XAML. Vous pouvez l’ouvrir et le fermer avec l’icône de développement qui se trouve au bord du volet de l’éditeur.

Python

Cette version ajoute les améliorations suivantes pour les développeurs Python :

  • 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.
  • 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.
  • 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).
  • Pour plus d’informations sur les fonctionnalités ci-dessus, consultez notre billet de blog Python in Visual Studio 2017 version 15.8.

Migrer les paramètres d’une fonction Azure locale

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.

Services connectés

Vous pouvez maintenant configurer la livraison continue de fonctions Azure directement de Visual Studio 2017 pour les solutions avec des projets de fonction Azure.

Amélioration de l’explorateur de test

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é. Le volet montre combien de tests ont échoué, réussi ou n’ont pas été exécutés dans ce regroupement.

Nouvelles fonctionnalités d’extensibilité

Protocole de serveur de langage

Visual Studio présente maintenant une prise en charge native du protocole de serveur de langage. 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. Les utilisateurs d’extension peuvent installer ces extensions pour commencer à utiliser leur langage préféré dans Visual Studio, tel que Rust.

Modèle de package asynchrone

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. En savoir plus sur AsyncPackages.

Packs d’extensions

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

Publication d’extensions avec la ligne de commande

Publiez vos extensions sur Visual Studio Marketplace à l’aide d’une ligne de commande.

Kit SDK .NET Core 2.1.400

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

  • Ajout de modèles NUnit
  • Ajout de la prise en charge des outils globaux signés
  • Amélioration du texte d’aide pour une meilleure clarté

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

Contrôle de code source

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.

Extension de l’adaptateur de test .NET

L’adaptateur de test .NET présente le changement cassant et la dépréciation suivants :

  • Changement cassant : Tous les projets de test doivent inclure leur référence d’adaptateur de test .NET NuGet dans leur 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 :
    • Le projet de test {<Chemin complet du projet de test>} ne fait référence à aucun adaptateur NuGet .NET. La découverte ou l’exécution de tests risquent de ne pas fonctionner pour ce projet. Il est recommandé de référencer les adaptateurs de test NuGet dans chaque projet de test de la solution.
  • Les frameworks de test .NET ont publié leurs adaptateurs dans les packages NuGet et se sont départis des extensions Visual Studio. La livraison d’adaptateurs de test .NET par le biais d’extensions est dépréciée, mais toujours prise en charge. Cela signifie que deux nouvelles options sont disponibles dans Outils > 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.
    • 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. Les deux options sont cochées par défaut, donc aucun comportement par défaut ne va changer dans cette version.
  • Remarque : Les adaptateurs de test non-.NET ne sont pas affectés par ce changement.

Prise en charge des secrets .NET Framework ASP.NET

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

Améliorer les performances .NET Framework ASP.NET

Si le package .NET Compiler référencé est obsolète dans un projet ASP.NET .NET Framework, Visual Studio vous invite à mettre le package à niveau quand vous ouvrez le projet afin d’améliorer les performances de génération.

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

Vous trouverez plus de détails sur .NET Framework 4.7.2 dans les articles suivants :

Différer le chargement de package

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. Ce changement n’affecte pas les packages chargés automatiquement de façon synchrone. Les utilisateurs peuvent consulter le Centre d’état des tâches en bas à gauche de la barre d’état pour suivre la progression. Les auteurs d’extensions qui créent des packages asynchrones doivent tester leur extension. Pour plus d’informations, consultez 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.7 Service Release-- publication : 10 octobre 2018

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

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. Un attaquant qui parvient à exploiter cette vulnérabilité peut utiliser les informations pour compromettre davantage l’application web. 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.

Visual Studio 2017 version 15.8.4 Service Release-- publication : 11 septembre 2018

CVE-2018-8409 Vulnérabilité de déni de service .NET Core

Une vulnérabilité de déni de service existe dans .NET Core 2.1 quand System.IO.Pipelines gère incorrectement les requêtes. Un attaquant qui parvenait à exploiter cette vulnérabilité pouvait provoquer un déni de service sur une application utilisant System.IO.Pipelines. La vulnérabilité peut être exploitée à distance, sans authentification. Un attaquant distant non authentifié pouvait exploiter cette vulnérabilité en émettant des requêtes spécialement conçues pour une application.

CVE-2018-8409 Vulnérabilité de déni de service ASP.NET Core

Une vulnérabilité de déni de service existe dans ASP.NET Core 2.1 qui gère incorrectement les requêtes web. Un attaquant qui parvenait à exploiter cette vulnérabilité pouvait provoquer un déni de service sur une application web ASP.NET Core. La vulnérabilité peut être exploitée à distance, sans authentification. 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.

Visual Studio 2017 version 15.8-- publiée le 14 août 2018

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

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

Visual Studio 2017 version 15.8 Préversion 4 -- publiée le 10 juillet 2018

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

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

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

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

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

Vulnérabilité de falsification liée à la validation incorrecte du code par Microsoft Macro Assembler. La mise à jour de sécurité corrige la vulnérabilité en garantissant que Microsoft Macro Assembler valide correctement la logique du code.

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

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. La mise à jour corrige la vulnérabilité en vérifiant le nombre de tentatives de connexion incorrectes.

Visual Studio 2017 version 15.8 Préversion 3 -- publiée le 26 juin 2018

CVE-2018-11235 Avis de sécurité Microsoft concernant une faille de sécurité Git

Nous avons corrigé une faille de sécurité dans Git, signalée par la communauté Git. Cette vulnérabilité peut entraîner une exécution de code arbitraire quand un utilisateur clone un référentiel malveillant.

Visual Studio 2017 version 15.8 Préversion 1 -- publiée le 8 mai 2018

CVE-2018-0765 Avis de sécurité Microsoft concernant une vulnérabilité de déni de service .NET Core

  • Microsoft publie cet avis de sécurité pour fournir des informations sur une vulnérabilité dans .NET Core et .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é.
  • 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. 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.
  • 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.
  • 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.

Release Notes IconVisual Studio 2017 version 15.8.1

publiée le 17 août 2018

Principaux problèmes corrigés dans la version 15.8.1

Voici les problèmes résolus dans la version 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.

Release Notes IconVisual Studio 2017 version 15.8.2

publiée le 28 août 2018

Principaux problèmes corrigés dans la version 15.8.2

Voici les problèmes signalés par les clients et traités dans la version 15.8.2 :


Release Notes IconVisual Studio 2017 version 15.8.3

publiée le 6 septembre 2018

Principaux problèmes corrigés dans la version 15.8.3

Voici les problèmes signalés par les clients et traités dans la version 15.8.3 :


Release Notes IconVisual Studio 2017 version 15.8.4

publiée le 11 septembre 2018

Principaux problèmes corrigés dans la version 15.8.4

Voici les problèmes signalés par les clients et traités dans la version 15.8.4 :

Avis de sécurité


Release Notes IconVisual Studio 2017 version 15.8.5

publiée le 20 septembre 2018

Récapitulatif des nouveautés de la version 15.8.5

  • Prise en charge de Xcode 10 par Visual Studio Tools pour Xamarin.

Principaux problèmes corrigés dans la version 15.8.5

Voici les problèmes signalés par les clients et traités dans la version 15.8.5 :

Détails des nouveautés de la version 15.8.5

Visual Studio Tools pour 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. Pour plus d’informations sur les nouvelles fonctionnalités disponibles, voir Guide pratique pour se préparer à iOS 12 et notre introduction à iOS 12.


Release Notes IconVisual Studio 2017 version 15.8.6

publiée le 2 octobre 2018

Récapitulatif des nouveautés de la version 15.8.6

Principaux problèmes corrigés dans la version 15.8.6

Voici les problèmes signalés par les clients et traités dans la version 15.8.6 :

Détails des nouveautés de la version 15.8.6

SDK Windows 10 le plus récent pour les développeurs de la plateforme Windows universelle

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. Vous pouvez ajouter ce SDK à la charge de travail en cochant la case SDK Windows 10 (10.0.17763.0).


Release Notes IconVisual Studio 2017 version 15.8.7

publiée le 10 octobre 2018

Nouveautés de la version 15.8.7

Azure DevOps

Visual Studio Team Services devient Azure DevOps ! Vous verrez ce nouveau nom de produit dans Team Explorer et en référence dans Visual Studio.

Avis de sécurité

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


Release Notes IconVisual Studio 2017 version 15.8.8

Publication : 24 octobre 2018

Principaux problèmes corrigés dans la version 15.8.8

Voici les problèmes signalés par les clients et traités dans 15.8.8 :


Release Notes IconVisual Studio 2017 version 15.8.9

Publication : 2 novembre 2018

Principaux problèmes corrigés dans la version 15.8.9

Voici les problèmes signalés par les clients et traités dans la version 15.8.9 :


Problèmes connus

Passez en revue tous les problèmes connus et les solutions de contournement disponibles dans Visual Studio 2017 version 15.8.

Visual Studio 2017 Known Issues


Commentaires et suggestions

Nous sommes à votre écoute ! Pour tout problème, signalez-les en utilisant l’option Signaler un problème en haut à droite du programme d’installation ou de l’IDE Visual Studio. L’icône Report a Problem Icon se trouve en haut à droite. Vous pouvez faire une suggestion de produit ou suivre vos problèmes sur le site Visual Studio Developer Community, où vous pouvez poser des questions, trouver des réponses et proposer de nouvelles fonctionnalités. Vous pouvez également obtenir une aide gratuite pour l’installation via notre support Live Chat.


Blogs

Tirez parti des insights et des recommandations disponibles sur le site Developer Tools Blogs pour rester informé de toutes les nouvelles versions Release et des publications contenant des informations approfondies sur un large éventail de fonctionnalités.

Developer Tools Blogs


Historique des notes de publication de Visual Studio 2017

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.


Haut de page