Partager via


Notes de publication de Visual Studio Icon VisualStudio 2017 version 15.8

Note

La version prise en charge de Visual Studio 2017 est la version 15.9.

Important

Il ne s’agit pas de la dernière version de Visual Studio. Pour télécharger la dernière version, consultez https://visualstudio.microsoft.com/downloads/ les notes de publication de Visual Studio 2022.

Visual Studio Blog

Le blog Visual Studio est la source officielle d’insights sur les produits de l’équipe d’ingénierie Visual Studio. Vous trouverez des informations détaillées sur les versions de Visual Studio 2017 version 15.8 dans les publications suivantes :

Versions de Visual Studio 2017 version 15.8

Résumé des nouvelles fonctionnalités notables dans la version 15.8

Principaux problèmes résolus dans la version 15.8

Voici les problèmes signalés par le client résolus dans la version 15.8 :

Consultez tous les problèmes signalés par le client résolus dans Visual Studio 2017 version 15.8.

Portail de la communauté des développeurs


Détails des nouveautés de la version 15.8

Icône Release Notes IconVisual Studio 2017 version 15.8.0

Publication : 14 août 2018

Nouvelles fonctionnalités dans la version 15.8

Installez

Vous avez maintenant la possibilité de télécharger tous les fichiers d’installation avant de commencer votre installation.

  • Pour utiliser cette nouvelle option, sélectionnez l’option « Télécharger tout, puis installer » dans le programme d’installation (Figure 1). Nous vous suggérons cette option si vous disposez d’une connexion Internet plus lente.
  • L’option par défaut reste « Installer lors du téléchargement », qui télécharge et installe en parallèle.
Télécharger Otion
(Figure 1) Option de téléchargement

Performance

Cette version contient les améliorations de performances suivantes :

  • Le basculement de branche pour les projets C#, VB et C++ est beaucoup plus rapide pour les grandes solutions, car le rechargement de la solution n’est plus nécessaire.
  • Nous avons réduit le temps de déchargement et de rechargement d’un petit ensemble de projets C# et VB dans de grandes solutions de quelques minutes à plusieurs secondes.
  • Nous avons ajouté une option permettant de désactiver la réouverture des documents ouverts dans la session précédente, car la réouverture de certains types de fichiers ou concepteurs peut retarder le chargement de la solution.
    • Activez cette option dans Les solutions de projets > d’options >> d’outils > en général.

Tester les performances

Nous avons considérablement amélioré les performances lors de l’exécution de quelques tests dans une solution volumineuse avec plusieurs projets de test. Dans nos laboratoires, une solution avec plus de 10 000 MSTests a exécuté un test unique jusqu’à 82% plus rapidement !

Amélioration des performances Visual Basic

Visual Basic offre désormais une amélioration significative des performances lors de l’utilisation du modèle CInt(Fix(number)) pour convertir des types non entiers en entiers.

Profilage des performances

Cette version contient les améliorations de profilage des performances suivantes :

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

    • L’outil Utilisation du processeur dans le Profileur de performances (ALT-F2) peut maintenant être démarré dans un état suspendu (Figure 2). Cela peut être utile en attendant un scénario digne d’une enquête sur l’utilisation du processeur. Si la collecte d’utilisation du processeur est désactivée au démarrage, le Profileur de performances ne collecte pas les exemples de données de pile d’utilisation du processeur tant qu’elle n’est pas spécifiquement activée. Cela entraîne une plus petite quantité de données à collecter et à analyser, ce qui rend vos enquêtes sur les performances plus efficaces.

    • Pour démarrer une session avec l’exemple de collecte d’utilisation du processeur désactivée, cliquez sur l’icône d’engrenage en regard de l’utilisation du processeur sur la page de lancement du Profileur de performances. Dans la page de propriétés Utilisation du processeur, décochez Activer le profilage du processeur (échantillonnage), puis cliquez sur OK pour enregistrer les paramètres.

      Page Paramètres de l’outil d’utilisation du processeur
      (Figure 2) Paramètres de l’outil d’utilisation du processeur
    • Une fois que vous démarrez l’application cible (cliquez sur Démarrer dans la page de lancement du Profileur de performances), vous verrez le graphique d’utilisation du processeur (Figure 3) qui vous permet de contrôler le profilage du processeur. Pour activer la collecte d’exemples de données de pile d’utilisation du processeur, sélectionnez Activer le profilage du processeur au milieu de la vue, ou cliquez sur Enregistrer le profil processeur juste en dessous du graphique d’utilisation du processeur. Vous pouvez cliquer sur Enregistrer le profil processeur pour activer/désactiver l’exemple de collecte de données autant de fois que vous le souhaitez. La couleur du graphique d’utilisation du processeur change pour indiquer si l’exemple de collecte est activé/désactivé à ce stade dans le temps.

      Vue de surveillance de l’outil d’utilisation du processeur
      (Figure 3) Graphique d’utilisation de l’utilisation du processeur
  • Nous avons ajouté un outil de suivi de l’allocation d’objets .NET :

    • L’outil .NET Object Allocation Tracking 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 collection d’une trace de pile pour chaque allocation d’objets .NET qui se produit dans l’application cible. Ces données de pile sont analysées avec les informations de type d’objet et de taille pour afficher les détails de l’activité mémoire de votre application. Vous pouvez rapidement déterminer les modèles d’allocation dans votre code et identifier les anomalies. En outre, pour les événements de garbage collection (GC), vous pouvez facilement déterminer quels objets ont été collectés et conservés et identifier rapidement les types d’objets qui dominent l’utilisation de la mémoire de l’application.
    • Cela est particulièrement utile pour les enregistreurs d’API afin de réduire les allocations. De nombreuses applications dépassent les limites de mémoire tampon impliquées dans la collecte de données de diagnostic, mais les petites applications de test qui exercent les scénarios clés d’une API peuvent être correctement diagnostiqués. Pendant l’exécution de votre application de test, le Profileur de performances affiche un graphique en courbes d’objets en direct (nombre), ainsi qu’un graphique à barres Delta d’objet (% modification).
    • Pour utiliser l’outil de suivi de l’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 le suivi de l’allocation d’objets .NET sous Outils disponibles, puis cliquez sur Démarrer.
    Page de lancement du Profileur de performances
    (Figure 4) Page de lancement du profileur de performances

Profilage des performances (utilisation du processeur)

Cette version contient les améliorations suivantes apportées à l’outil Utilisation du processeur du Profileur de performances (disponible via ALT-F2) :

  • L’arborescence des appels affiche désormais l’exécution asynchrone par pile d’appels logiques par défaut. Vous pouvez désactiver ce comportement en décochant l’option Stitch Async Code dans la liste déroulante Filtre de l’affichage principal utilisation du processeur.
  • Nous avons ajouté une vue Modules/Functions qui affiche les informations de performances par module (dll) et par fonction au sein d’un module. Vous pouvez afficher l’affichage Modules/Fonctions dans le menu contextuel disponible lors de la sélection d’une fonction dans l’affichage principal utilisation du processeur ou dans la liste déroulante Affichage dans l’arborescence des appels ou des vues Caller/Callee.
  • L’indication de l’instance a été ajoutée au graphique Utilisation du processeur dans la vue principale de l’outil Utilisation du processeur. Vous pouvez afficher les instances lorsqu’une fonction s’exécute (par exemple, sur la pile) en double-cliquant sur une fonction répertoriée dans l’une des vues Utilisation du processeur.

Productivité

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

  • Vous pouvez effectuer un nettoyage de code supplémentaire avec format de document (Ctrl+ K, D ou Ctrl + E, D) pour le développement C#. Configurez le nettoyage en accédant àl’Éditeur> de texteOptions>outils>C#>Miseen forme> du style >de code.
  • Nous avons ajouté d’autres refactorisations et actions rapides à l’aide de Ctrl + . ou Alt + Entrée :
    • Invert If vous permet d’inverser votre logique dans les instructions if-else. Placez votre curseur dans le if mot clé pour déclencher cette refactorisation.
    • Ajouter un paramètre à partir d’appels de méthode vous permet d’ajouter un paramètre à une méthode en ajoutant un argument à un appel de méthode et en déclenchant des actions rapides et des refactorisations.
    • Supprimer les parenthèses inutiles supprime les parenthèses autour des opérateurs binaires qui ne sont pas essentiels pour la compilation. Vous pouvez configurer cette règle de style par le biais del’Éditeur> de texteOptions>outils>C#>Style>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
    • Utilisez des conditions ternaires dans les affectations et les instructions de retour peuvent également être configurées en tant que règle de style dansOptions>d’outils>... ou via .editorconfig :
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Nous avons ajouté de nouvelles commandes et améliorations à la fenêtre Accéder à tous :
    • Accédez au bloc englobant (Ctrl + Alt + UpArrow) vous permet de naviguer rapidement jusqu’au début du bloc de code englobant.
    • Accédez au problème suivant/précédent (Alt + PgUp/PgDn) vous permet d’accéder au problème suivant/précédent (erreur,quiggle, ampoule).
    • Accédez au membre (Ctrl + T, M) est désormais limité au fichier par défaut. Vous pouvez remplacer la solution par défaut en basculant l’étendue vers le document actif (Ctrl + Alt + C).
  • Vous pouvez maintenant créer des points d’insertion et des sélections à plusieurs emplacements arbitraires d’un fichier avec plusieurs prise en charge de caret. Cela vous permet d’ajouter, de modifier ou de supprimer du texte simultanément.
    • Insérez des carets avec Ctrl + Alt + LeftMouseClick.
    • Ajoutez une sélection et caressez à l’emplacement suivant qui correspond à la sélection actuelle avec Maj + Alt + Ins.
    • Consultez Modifier > plusieurs carets pour obtenir la liste complète des actions.
  • Accédez à un menu de navigation contextuel avec Alt + ' .
  • Gardez vos liaisons de touches cohérentes avec deux nouveaux profils clavier : Visual Studio Code et ReSharper (Visual Studio). Vous trouverez ces schémas sous Clavier d’environnement > Options > outils > et le menu déroulant supérieur.

Débogage

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

  • Lorsque plusieurs instances de Visual Studio 2017 sont installées, vous pouvez désormais sélectionner l’instance à laquelle déployer votre extension lors du débogage (Figure 5). De cette façon, vous pouvez, par exemple, développer dans le canal de mise en production visual Studio lors du débogage dans le canal d’aperçu.

    Sélectionner votre instance de débogage
    (Figure 5) Sélectionner l’instance de débogage
  • Vous pouvez maintenant joindre le débogueur d’instantané directement à partir de la page Résumé de publication (Figure 6).

    Attacher le débogueur d’instantané à partir de la page Publier le résumé
    (Figure 6) Attacher le débogueur d’instantané à partir du résumé de publication
  • Nous prenons désormais en charge l’affichage des tâches gérées via la fenêtre Tâches lors du débogage de minidumps avec le tas.

Outils pour les développeurs de 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 ultérieure. Ces améliorations sont les suivantes :

  • Vous pouvez maintenant modifier des collections dans l’inspecteur de propriétés.
  • Le concepteur permet désormais de modifier les modèles et les styles, notamment lorsque les définitions de ces entités sont définies dans d’autres documents.
  • Les propriétés de type IconElement (par exemple, Icon dans un AppBarButton) disposent désormais d’un éditeur personnalisé dans l’inspecteur de propriétés, ce qui facilite la définition de ces propriétés.
  • Le concepteur, l’éditeur et la fonction Modifier et Continuer doivent désormais fonctionner correctement avec x :DefaultBindMode.
  • L’expérience Visual State Manager dans Blend prend désormais en charge AdaptiveTrigger.

Outils F# 4.5 et F# pour Visual Studio

Nous avons introduit la version 4.5 du langage F# 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 chacune de ces modifications dans le référentiel RFC F#. Il existe également de nombreuses améliorations apportées aux outils F# pour Visual Studio avec cette version.

F# 4.5

Voici quelques-uns des points forts avec la version 4.5 du langage F# :

Prise en charge de Span’T<>

Nous avons implémenté Span<'T> et des fonctionnalités connexes afin que la consommation et la production effectives des API utilisant Span, Memoryet ref-like constructions sont possibles avec F#. Les fonctionnalités suivantes sont les suivantes :

  • Nouveau voidptr type.
  • Nouveautés NativePtr.ofVoidPtr et NativePtr.toVoidPtr fonctions dans FSharp.Core.
  • De nouveaux types inref<'T> et outref<'T>, qui sont respectivement des byrefs en lecture seule et des byrefs en écriture seule. Cela correspond et in refout ref en C#.
  • Capacité à produire ByRefLike des structs (tels que Span et ReadOnlySpan).
  • Capacité à produire IsReadOnly des structs.
  • Déréférencement implicite des byrefméthodes ( et inref- renvoie à partir de méthodes).
  • Possibilité de produire des membres d’extension sur byref/inref/outref.

Cet ensemble de fonctionnalités corrige un bogue dans la conception initiale de byref-return dans F# 4.1, où les fonctions, méthodes et propriétés retournées byrefn’étaient pas implicitement déreferencant la valeur de retour. Nous apportons cette modification pour mettre la fonctionnalité en ligne avec la façon dont les handles refC# -retournent. Un message d’erreur est utilisé lorsqu’une annotation de type indique qu’une déréférence implicite d’un refretour est désormais utilisée.

En outre, cet ensemble de fonctionnalités corrige également un bogue dans le compilateur F# où le « remplacement du struct mal » était possible ; Par exemple, l’appel d’une méthode sur un struct F# peut remplacer le struct réel appelé par un autre. Le this paramètre d’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 span les refconstructions de type RFC pour cet ensemble de fonctionnalités.

Allumette! dans les expressions de calcul

F# 4.5 introduit match!, un nouveau mot clé à utiliser dans les expressions de calcul, a contribué entièrement par John Wostenberg. Ce sucre syntactique équivaut à un let! suivi par un match sur le résultat. Vous pouvez en savoir plus dans le RFC pour match!.

Relaxing the need to upcast with yield in sequence, list et array expressions

F# 4.5 assouplit désormais certains cas où une mise encast lors de l’utilisation yield a été nécessaire pour convertir un sous-type en un supertype. Cette restriction n’était déjà pas nécessaire pour ces expressions, car F# 3.1 lorsque vous n’utilisezyieldpas, cela rend 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 désormais la règle de mise en retrait pour les crochets de liste et de tableau qui leur ont demandé d’être mis en retrait d’une étendue vers l’avant lorsqu’elles se sont placées sur leur propre ligne. Cette exigence précédente a toujours été assez déroutante, en particulier pour les débutants en F#. En outre, il n’est pas nécessaire pour les expressions de séquence F#. Cela permet désormais aux expressions de tableau et de liste d’atteindre 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 en tant que public

F# 4.5 émet désormais des cas d’énumération en tant que publics dans toutes les circonstances, pour s’aligner sur la façon dont C# émet des cas d’énumération. Cela facilite également l’analyse des journaux d’activité à partir du code F#, où la valeur plutôt que le nom de l’étiquette a été émis. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.

Améliorations apportées au compilateur F#

Les améliorations apportées au compilateur F# en plus des fonctionnalités de langage mentionnées précédemment sont en F# 4.5. Voici quelques-uns des éléments suivants :

  • Nous avons amélioré les performances du compilateur en supprimant jusqu’à 2,2% de toutes les allocations du compilateur F# (dans différents scénarios).
  • Nous avons résolu un bogue qui entrait une AccessViolatioNException utilisation yield! avec des énumérables basés sur des structs.
  • Il est désormais possible d’hériter de FSharpFunc nouveau.
  • Les appels tail sont désactivés par défaut pour les builds de débogage de F# pour .NET Core. Ils sont activés pour la version, correspondant 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 transitive é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 maintenant.
  • F# respecte désormais l’indicateur WarningsNotAsErrors que vous pouvez définir dans les fichiers projet.
  • Lorsque les branches d’une correspondance de modèle ne retournent pas la même condition de type de message d’erreur, a été mise à jour pour être plus conviviale par Isaac Abraham.
  • Un bogue d’erreur interne lors de la compilation d’une implémentation d’interface qui n’a pas d’implémentation de méthode surchargée a été résolu par Steffen Forkmann.
  • Certaines copies de tableau inutiles dans la phase de lexing du compilateur ont été supprimées par Gauthier Segay.
  • Les correspondances incomplètes sur les énumérations F# produisent désormais un avertissement détaillé qui donne un exemple de cas non couvert, contribué par John Wostenberg.
  • '#nowarn '2003' est maintenant respecté, contribué par Matthias Diitrich.
  • Un bogue où l’utilisation des méthodes d’extensions C# pourrait échouer dans la résolution de surcharge F# a été corrigée par Steffen Forkmann.
  • Un bogue de structure de données QueueList interne a été résolu par Steffen Forkmann.
  • Diverses optimisations plus petites et les efforts de nettoyage du code ont été contribués par Steffen Forkmann, Eugene Auduchinok et ncave.

Bibliothèque principale F# 4.5.x

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

  • Des travaux importants ont été effectués pour améliorer les traces de pile pour async { } les expressions de calcul. 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é.
  • FuncConvert.FromFunc et FuncConvert.FromAction LES API qui tapez System.Func et System.Action surchargent, pour faciliter l’interopérabilité avec C#. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.
  • ValueOption est un nouveau type disponible, qui est le premier dans un ensemble de fonctionnalités futures visant finalement à améliorer les performances pour les modèles actifs. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.
  • TryGetValue est maintenant un nouveau membre sur le type de carte F#. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité.
  • Nous avons résolu l’utilisation élevée du processeur lors du premier appel de MailboxProcessor.TryReceive.
  • La comparaison pour bool l’instant utilise une comparaison générique rapide, contribuée par Vasily Kirichenko.
  • Le texte de synthèse pour Array.allPairs lequel la mise à jour a été effectuée pour être correcte, a contribué par Patrick McDonald

Améliorations apportées aux outils F#

Des améliorations significatives dans les outils F#, comme les améliorations de performances et certaines nouvelles fonctionnalités de l’éditeur, sont incluses dans cette version. Comme toujours, avec un grand nombre de contributions de la communauté open source F#. Voici les points forts :

  • Nous avons amélioré les performances IntelliSense pour les projets de style sdk .NET de tous les formulaires, y compris ceux qui utilisent le multi-ciblage.
  • Un effort communautaire visant à analyser et améliorer les performances d’IntelliSense pour des fichiers très volumineux a été contribué par Vasily Kirichenko, Steffen Forkmann et Gauthier Segay. IntelliSense dans des fichiers très volumineux (10 000 lignes de code) est à peu près deux fois plus rapide maintenant.
  • L’avertissement d’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 la documentation XML d’un membre après . IntelliSense n’expire plus après 10 secondes.
  • Un bogue dans lequel vous n’avez pas pu définir de points d’arrêt dans les arguments du constructeur d’objet a été résolu.
  • Bogue dans lequel un symbole renommé serait dupliqué lorsqu’il s’agit d’un paramètre générique a été résolu.
  • Les modèles pour .NET Framework (modèles F# classiques) consomment désormais FSharp.Core à partir d’un package NuGet, pour s’aligner sur les modèles F# du Kit de développement logiciel (SDK) .NET.
  • La saisie semi-automatique et transactionnelle est désormais disponible pour ()les paires , , []{}, [||]et [<>] accolades. Nous avons fait ce travail en collaboration avec Gibran Rosa.
  • Vous pouvez maintenant accéder à la définition avec Ctrl + Cliquer sur un symbole F#. Les paramètres de ce mouvement sont également respectés dans la fenêtre Options des outils>.
  • L’interface utilisateur de performances IntelliSense a été modifiée pour permettre la configuration des informations de vérification de type obsolètes pour différentes fonctionnalités de l’IDE. Les explications de chaque option sont désormais présentes dans les info-bulles pour les paramètres.
  • Le match d’accolades met désormais correctement en évidence les accolades, terminées en collaboration avec Vasily Kirichenko.
  • Accéder à la définition navigue maintenant correctement lorsqu’un type est défini de manière récursive, contribué par Vasily Kirichenko.
  • Un bogue dans lequel un espace de noms importé automatiquement n’a pas été ouvert lorsque le haut d’un fichier a été vide a été résolu par Vasily Kirichenko.
  • Un bogue dans lequel printf les spécificateurs qui contenaient des points étaient mal colorés a été résolu par Vasily Kirichenko.
  • Un bogue où toutes les ouvertures étaient considérées comme inutilisées à l’intérieur d’un module récursif a été corrigée par Vasily Kirichenko.
  • Les performances de l’analyseur Open inutilisé ont été considérablement améliorées par Vasily Kirichenko.
  • La saisie automatique pour les attributs suggère désormais uniquement des options qui sont réellement des attributs, contribuées par Vasily Kirichenko.
  • Les info-bulles d’aide de signature sont désormais générées pour les paramètres statiques du fournisseur de types sur le site d’appel du constructeur, contribuées par Vasily Kirichenko.
  • Un bogue dans lequel les types valeur utilisés comme unités de mesure ont été colorés en tant que types de référence a été résolu par Vasily Kirichenko.
  • Un bogue dans lequel la coloration sémantique pourrait disparaître pour certains fichiers lors du défilement a été résolu par Vasily Kirichenko.
  • Il existe maintenant une implémentation expérimentale de CodeLens, contribuée par Victor Peter Rouven Müller. Vous pouvez l’activer dans Options > Éditeur > de texte F# > Code Lens.
  • Un bogue dans lequel le service du compilateur F# élisait incorrectement les noms de module dans la documentation XML a été corrigé par Sebastian Urban.
  • Le code qui utilise Dictionary avec ContainsKey et les appels suivants Item a été modifié pour l’utiliser TryGetValue, par Eugene Auduchinok.
  • Jakob Majoka a également contribué au processus de consommation d’une autre API pour les info-bulles.

Améliorations apportées à l’infrastructure, à l’empaquetage et à l’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 à l’emplacement du Kit de développement logiciel (SDK) du compilateur F#. Il est désormais entièrement côte à côte avec Visual Studio, ce qui signifie que les installations côte à côte de Visual Studio auront finalement des outils et des expériences de langage 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#.
  • Les fichiers très volumineux control.fs/control.fsi dans FSharp.Core ont été divisés en async.fs/async.fsi, , event.fs/event.fsieventmodule.fs/eventmodule.fsi,mailbox.fs/mailbox.fsi , et .observable.fs/observable.fsi
  • Nous avons ajouté des versions de style sdk .NET de nos artefacts de test de stress de performances de projet.
  • Nous avons supprimé Newtonsoft.json de notre codebase, et vous disposez maintenant d’un package moins téléchargé pour les contributeurs OSS.
  • Nous utilisons désormais 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 de conformité et d’ensemble d’outils C++ suivantes :

  • Un nouveau préprocesseur expérimental basé sur des jetons conforme aux normes C++11 (y compris les fonctionnalités de préprocesseur C99), activé avec le commutateur /experimental :preprocessor. Ceci est contrôlé avec la macro _MSVC_TRADITIONAL, qui est définie 1 lors de l’utilisation du préprocesseur traditionnel et 0 lors de l’utilisation des nouvelles normes expérimentales préprocesseur conforme.
  • L’invite de commandes du développeur Visual Studio prend en charge l’activation des runtimes atténués de La variante 1 de Visual C++ Spectre (-vcvars_spectre_libs = spectre). Pour plus d’informations sur les atténuations de Spectre, consultez le blog de l’équipe Visual C++.
  • Deux nouveaux ajouts à l’optimiseur SSA se concentrent sur la génération de code C++ moderne : élimination du magasin redondant et repli de branches redondantes.
  • Performances d’E/S mappées de mémoire optimisée dans l’éditeur de liens pour réduire les temps de liaison.

Développement multiplateforme C++

Nous avons ajouté, amélioré et ajouté les éléments suivants au développement multiplateforme C++ pour cette version :

  • > Ajout d’unnouveau modèle d’élément pour générer un fichier .clang-format suivant la convention de codage spécifiée pour ClangFormat dansles options>. Si la convention Visual Studio est sélectionnée, le fichier généré tente de correspondre à la configuration actuelle de la mise en forme visual Studio de l’utilisateur à partir des options d’outils>.
  • Mise à jour du clang-format.exe fourni vers la version 6.0.0.
  • Modèles pour simplifier l’ajout de configurations à CppProperties.json.
  • Ajout de modèles pour simplifier l’ajout de configurations à CMakeSettings.json(Figure 7).
Modèles de configuration pour CMake
(Figure 7) Modèles de configuration pour CMake

Productivité C++

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

  • Les info-bulles d’informations rapides C++ sur les macros affichent désormais ce à quoi ils s’étendent, plutôt que simplement leur définition. Cela est particulièrement utile pour les macros complexes qui référencent d’autres macros, car elle clarifie ce que l’identificateur de macro est remplacé par le préprocesseur.
  • Ajout d’une nouvelle ampoule de correctif rapide pour convertir des macros de base en constexpr en tant qu’outil pour moderniser le code.
  • IntelliSense pour les modèles fournit plus d’informations sur les arguments de modèle pour tirer pleinement parti d’IntelliSense dans votre corps de modèle (Figure 8).
Modèle IntelliSense
(Figure 8) Modèle IntelliSense
  • Nous travaillons à actualiser notre expérience d’analyse du code. Vous pouvez désormais activer les nouvelles fonctionnalités en cours sous>l’Éditeur> de texteOutils>C++>Experimental>Code Analysis. L’analyse du code peut s’exécuter en arrière-plan lorsque des fichiers sont ouverts ou enregistrés, et les résultats sont affichés dans la liste d’erreurs et sous forme d’écumences vertes dans l’éditeur (Figure 9).
Analyse du code dans l’éditeur
(Figure 9) Analyse du code dans l’éditeur

Améliorations du débogage C++

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

  • Mon code vous permet désormais d’effectuer un pas à pas à partir de bibliothèques C++ système ou tierces en plus de réduire ces appels dans la fenêtre de pile des appels. Vous pouvez contrôler ce comportement pour toutes les bibliothèques C++ lorsque votre code est compilé avec /JMC et que les chemins d’accès aux bibliothèques non utilisateur sont spécifiés dans un fichier .natjmc. Si la bibliothèque système appelle du code utilisateur, lorsque vous effectuez un pas à pas, le débogueur ignore tout le code système et s’arrête sur la première ligne de rappel de code utilisateur (Figure 10).
Juste mon code
(Figure 10) Juste mon code
  • Les points d’arrêt de données peuvent désormais être définis dans les fenêtres Espion, QuickWatch, Autos et Locals, ce qui vous permet de rompre lorsqu’une valeur stockée dans la mémoire change en quelques clics.
  • Source Link vous permet d’incorporer des informations sur le code source d’origine d’un exécutable ou d’une bibliothèque dans la base de données PDB pendant la compilation.
  • Lors du débogage, la fenêtre de console reste ouverte par défaut lorsque le programme met fin à l’exécution (similaire à l’exécution du programme sans le débogueur). Ce comportement peut être redirigé vers la fermeture automatique de la console dans le débogage > général des options d’outils >>.

Améliorations de JavaScript et de 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 de publication de TypeScript 3.0.

Amélioration de la prise en charge des Vue.js

La prise en charge de la bibliothèque Vue.js a été améliorée et, en particulier, la prise en charge des fichiers .vue, également appelée « composants de fichiers uniques ». Cela fournit des améliorations lors de la modification des blocs de script dans les fichiers .vue, notamment la prise en charge des blocs de script créés dans TypeScript via l’attribut lang="ts" sur l’élément de script. (Remarque : un processus de génération utilisant WebPack ou similaire doit être utilisé 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 Composants de fichiers uniques .

Si la charge de travail Node.js est installée, il existe désormais des modèles « Application web de base Vue.js » sous les chemins « JavaScript / Node.js» ou « TypeScript / Node.js» dans la boîte de dialogue Nouveau projet. L’exemple ci-dessous illustre la modification du code TypeScript à l’intérieur d’un bloc de script dans un fichier .vue (Figure 11).

Modification d’un fichier .vue
(Figure 11) Modification des fichiers .vue

Améliorations ESLint

Nous avons réédité la prise en charge de ESLint pour cette version. ESLint présente les améliorations et améliorations suivantes :

  • Au lieu de uniquement linting des fichiers enregistrés, Visual Studio lint désormais des fichiers JavaScript à mesure que vous modifiez, ainsi.
  • Les résultats peuvent être signalés pour tous les fichiers JS de votre projet, pas seulement pour ouvrir des fichiers ; s’il existe des parties de votre projet que vous ne souhaitez pas linted, un fichier .eslintignore peut désormais être utilisé pour spécifier des répertoires et des 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, elle utilise plutôt cette version.

ESLint peut être désactivé globalement dans Visual Studio en décochant le paramètre Activer ESLint dans l’éditeur de texte **Tools >> Options > JavaScript/Typescript > Linting ** (Figure 12).

ESLint Options
(Figure 12) ESLint Options

Améliorations apportées aux dossiers pour Node.js

Il existe de nombreuses améliorations avec JavaScript et TypeScript dans le scénario Ouvrir le dossier lorsque la « charge de travailNode.js » est installée. Par exemple, la gestion des packages NPM, la génération de TypeScript, le lancement et le débogage avec Node.exe, l’exécution de scripts NPM et l’exécution de tests unitaires.

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

Améliorations des performances de l’éditeur

Dans les versions précédentes, toutes les opérations du service de langage JavaScript et TypeScript ont été traitées par un seul processus de Node.js. Cela peut entraîner des retards de l’éditeur si les commandes qui ont un impact sur la saisie de l’utilisateur (par exemple, la mise en forme automatique après une nouvelle ligne) ont été envoyées alors qu’une opération potentiellement longue était déjà en cours (par exemple, l’analyse du code pour les erreurs). Pour atténuer ce problème, un processus distinct est désormais utilisé pour les opérations qui ont un impact sur la modification la plus grande. Ce processus est beaucoup plus léger 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ésactiver le processus de syntaxe dédiée dans l’Éditeur > de texte Options > outils > JavaScript/TypeScript > Language Service.

Visual Studio Web Tools

Le Gestionnaire de bibliothèques est une nouvelle fonctionnalité incluse dans Visual Studio 2017. Il vous aide à 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 de projet unique pour ASP.NET projets web Core. Cela complète les outils de conteneur Docker Compose existants et offre un moyen plus simple et plus simple de créer, de déboguer et de créer des conteneurs Docker directement à partir de Visual Studio.

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

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

Vous pouvez également activer la prise en charge de Docker sur un projet existant via le menu contextuel du projet dans l’Explorateur de solutions (Figure 14). Une fois cela fait, Visual Studio crée un fichier Dockerfile unique dans le projet. Vous avez la possibilité de choisir Windows ou Linux.

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

Visual Studio ajoute également un profil de lancement de débogueur (Figure 15) pour Docker afin que le projet puisse être débogué lors de l’exécution dans un conteneur.

Profil de lancement Docker
(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 plusieurs conteneurs simultanément, vous pouvez cliquer avec le bouton droit sur la solution dans l’Explorateur de solutions et sélectionner Définir des projets de démarrage, puis plusieurs projets de démarrage, puis définir la liste déroulante Action sur Démarrer ou Démarrer sans débogage pour tous les projets que vous souhaitez exécuter.

Une fois que vous avez votre projet conteneurisé en cours d’exécution 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 à envoyer (push) à Azure Container Registry ou DockerHub.

Vous pouvez également ajouter la fonctionnalité Docker Compose existante à un projet web ASP.NET Core via la nouvelle option de prise en charge de Container Orchestrator(Figure 16). Cliquez avec le bouton droit sur le projet web principal ASP.NET dans l’Explorateur de solutions, sélectionnez Ajouter > une prise en charge de Container Orchestrator, puis sélectionnez Docker Compose dans le menu déroulant.

Ajout de la prise en charge de Container Orchestrator
(Figure 16) Ajout de la prise en charge de l’orchestration

Améliorations apportées à la publication

Cette version contient les améliorations de publication suivantes :

  • Lors de la publication d’un conteneur Docker dans un registre de conteneurs, vous pouvez désormais personnaliser la balise de l’image. Vous pouvez ajouter manuellement une balise (la valeur par défaut est « latest ») ou utiliser une balise générée automatiquement pour vous assurer que chaque balise est unique.
  • Lors de la création d’un service Azure App Service, vous pouvez également configurer Application Insights pour collecter automatiquement les données de télémétrie. Si vous choisissez une région qui a également Application Insights, elle 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.
  • Lorsque vous publiez des projets Azure Functions, vous pouvez choisir de publier à l’aide de 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 désormais .NET Standard. L’option de projet partagé est toujours disponible.
  • Nous avons ajouté des améliorations de build incrémentielle Android. Xamarin.Android utilise des fichiers générés dans le répertoire de sortie intermédiaire pour obtenir des builds incrémentielles plus rapides que les builds complètes. Auparavant, si vous avez modifié l’infrastructure cible de votre projet, elle invaliderait les fichiers et entraînerait une build complète sur l’exécution suivante. Dans cette version, nous conservons maintenant les fichiers dans les dossiers par infrastructure afin de pouvoir basculer entre différents frameworks cibles et tirer parti des builds incrémentielles. Le nettoyage du projet vous permet de récupérer l’espace disque utilisé par les fichiers conservés.
  • Nous avons ajouté la prise en charge minimale des projets de liaison Xamarin.Mac dans Visual Studio 2017. Cela permet à Visual Studio de charger et de reconnaître les projets de liaison Xamarin.Mac en tant que pris en charge. Vous pouvez également générer 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, de sorte que les assemblys IL générés ne peuvent pas être utilisés pour l’exécution ou le débogage dans les applications.

prise en charge de l’émulateur Android Hyper-V

Cette version ajoute la prise en charge de l’émulateur Google Android compatible avec Hyper-V lors de l’exécution sur la mise à jour d’avril 2018 de Windows 10 (Figure 17). Cela vous permet d’utiliser l’émulateur Android de Google côte à côte avec d’autres technologies basées sur des Hyper-V, notamment les machines virtuelles Hyper-V, les outils Docker, l’émulateur HoloLens, etc. Les développeurs d’applications mobiles qui utilisent Hyper-V ont désormais accès à un émulateur Android rapide qui prend toujours en charge les dernières API Android, fonctionne avec Google Play Services prête à l’emploi et prend en charge toutes les fonctionnalités de l’émulateur Android, notamment la caméra, la géolocalisation et le démarrage rapide.

Capture d’écran de l’émulateur Google Android et de l’émulateur HoloLens en même temps.
(Figure 17) Émulateur Google Android et Émulateur HoloLens

Concepteur Xamarin.Android

Nous avons apporté des améliorations significatives à l’expérience du concepteur pour Xamarin.Android. Les points forts sont les suivants :

  • Un éditeur en mode fractionné a été introduit, ce qui vous permet de créer, de modifier et d’afficher un aperçu de vos dispositions en même temps (Figure 18).
Capture d’écran de l’éditeur de mode fractionné Xamarin.Android.
(Figure 18) Éditeur de split-view Xamarin.Android
  • Amélioration de l’expérience IntelliSense et de la fiabilité des contrôles personnalisés.
  • Exemple de prise en charge des données pour les valeurs fournies par le système.

Xamarin.Forms Previewer (Aperçu de Xamarin.Forms)

L’aperçu Xamarin.Forms dispose désormais de la prise en charge de la boîte à outils lors de l’utilisation de Xamarin.Forms version 3.1.0.583944 ou ultérieure. Les contrôles Xamarin.Forms apparaissent dans la boîte à outils afin qu’ils soient plus détectables pour ceux qui débutent dans le kit de ressources. Vous pouvez également faire glisser-déplacer un contrôle sur l’éditeur de code XAML pour ajouter le contrôle à la page. L’aperçu Xamarin.Forms fait désormais partie de l’éditeur XAML. Vous pouvez l’ouvrir et le fermer avec l’icône développer sur le bord du volet de l’éditeur.

Python

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

  • Python IntelliSense utilise désormais des définitions typées pour fournir des résultats plus riches pour les bibliothèques où les saisies semi-automatique ne peuvent pas être déduites par l’analyse statique.
  • Le débogueur expérimental, annoncé pour la première fois dans les versions préliminaires 15.7, est désormais le moteur de débogage par défaut utilisé pour Python, fournissant un débogage plus rapide et plus fiable pour le code Python.
  • Nous avons ajouté la prise en charge de Python 3.7, notamment les correctifs permettant d’activer les fonctionnalités de débogage d’attachement, de profilage et de débogage en mode mixte (multi-langage).
  • Pour plus d’informations sur les fonctionnalités ci-dessus, consultez notre billet de blog Python dans Visual Studio 2017 version 15.8 .

Migrer les paramètres de fonction Azure local

La boîte de dialogue « Paramètres d’application managée » disponible à partir de la page de synthèse de publication affiche désormais les valeurs de votre fichier local.settings.json et vous permet de migrer des valeurs vers votre application de fonction Azure distante hébergée dans Azure.

Services connectés

Vous pouvez maintenant configurer la livraison continue pour les fonctions Azure directement à partir de Visual Studio 2017 pour les solutions avec Azure Function Projects.

Amélioration de l’Explorateur de tests

L’Explorateur de tests affiche désormais un volet récapitulatif d’état de test plus informatif (volet inférieur de l’Explorateur de tests) lorsque l’un des regroupements dans l’affichage hiérarchie est sélectionné. Le volet affiche maintenant le nombre de tests ayant échoué, réussis ou non exécutés dans ce regroupement.

Nouvelles fonctionnalités d’extensibilité

Protocole du serveur de langage

Visual Studio prend désormais en charge nativement le protocole Language Server. Les auteurs d’extensions peuvent créer des extensions qui communiquent avec des serveurs de langage existants pour ajouter une prise en charge de langue supplémentaire à Visual Studio. Les utilisateurs d’extension peuvent installer ces extensions pour commencer à utiliser leur langage favori dans Visual Studio, comme Rust.

Modèle AsyncPackage

Les auteurs d’extensions peuvent désormais utiliser des modèles d’éléments pour créer des AsyncPackages afin d’optimiser les performances de leur extension. En savoir plus sur les AsyncPackages.

Packs d’extension

Partagez facilement votre ensemble d’extensions préféré ou configurez une nouvelle installation de Visual Studio avec toutes vos extensions à l’aide d’un pack d’extensions. Les packs d’extensions vous permettent de créer une liste d’extensions, de les empaqueter dans une extension et de les utiliser rapidement pour installer ces extensions en bloc.

Publication d’extension de ligne de commande

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

KIT SDK .NET Core 2.1.400

Visual Studio 2017 version 15.8 inclut le KIT SDK .NET Core 2.1.400. Les nouvelles fonctionnalités du Kit de développement logiciel (SDK) sont les suivantes :

  • Ajout de modèles NUnit
  • Ajout de la prise en charge des outils globaux signés
  • Texte d’aide amélioré pour une meilleure clarté

32 problèmes ont été fermés sur l’interface CLI .NET Core.
20 problèmes ont été fermés sur le Kit de développement logiciel (SDK) .NET Core.

Contrôle de la source

Pour les projets .NET Core, les fichiers ajoutés directement au projet via l’Explorateur de fichiers affichent désormais les icônes de suivi Git et TFS correctes dans l’Explorateur de solutions sans avoir à recharger la solution.

Extension de l’adaptateur de test .NET

L’adaptateur de test .NET a les changements cassants et la dépréciation suivants :

  • Changement cassant : tous les projets de test doivent inclure leur référence NuGet de l’adaptateur de test .NET dans leur csproj. Si ce n’est pas le cas, cette sortie de test s’affiche sur le projet si la découverte par une extension d’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 des tests peuvent ne pas fonctionner pour ce projet. Il est recommandé de référencer des adaptateurs de test NuGet dans chaque projet de test de la solution.
  • Les frameworks de test .NET ont publié leurs adaptateurs dans des packages NuGet et s’éloignent des extensions Visual Studio. La prise en charge des adaptateurs de test .NET fournis par le biais d’extensions est déconseillée, mais toujours prise en charge. Cela signifie que deux nouvelles options sont disponibles dans le test d’options > d’outils>.
    • La première option permet à Visual Studio d’utiliser uniquement les adaptateurs de test qu’il trouve dans le dossier d’assembly de test (rempli par la référence NuGet de l’adaptateur de test) ou comme spécifié dans le fichier runsettings.
    • La deuxième option permet à Visual Studio de « secours » à l’ancien comportement et de rechercher des extensions d’adaptateur de test pour les projets qui n’ont pas de référence NuGet d’adaptateur de test. Les deux options sont cochées par défaut. Par conséquent, aucun comportement par défaut ne change dans cette version.
  • Remarque : Non-.NET adaptateurs de test ne sont pas affectés par cette modification.

prise en charge des secrets .NET Framework ASP.NET

Pour ASP.NET, les projets .NET Framework qui ciblent .NET Framework 4.7.1 ou version ultérieure, vous pouvez désormais ouvrir et stocker les secrets que vous ne souhaitez 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 de .NET Framework ASP.NET

Si le package du compilateur .NET référencé est obsolète dans un projet ASP.NET .NET Framework, Visual Studio vous invite à mettre à niveau le package lorsque vous ouvrez le projet pour améliorer vos performances de génération.

.NET Framework 4.7.2

Visual Studio 2017 version 15.8 offre 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. .NET Framework 4.7.2 offre plusieurs nouvelles fonctionnalités et améliorations, ainsi que de nombreuses corrections de fiabilité, de stabilité, de sécurité et de performances.

Vous trouverez plus d’informations sur .NET Framework 4.7.2 dans les articles suivants :

Retarder le chargement du package

Visual Studio retarde désormais le chargement des packages asynchrones configurés pour le chargement automatique jusqu’à ce que l’IDE Visual Studio ait entièrement démarré et que la solution ait été chargée. Cette modification n’affecte pas les packages chargés automatiquement de manière synchrone. Les utilisateurs peuvent consulter le Centre d’état des tâches dans le coin inférieur gauche de la barre d’état pour surveiller la progression. Les auteurs d’extensions qui créent des asyncpackages doivent tester leur extension. Pour plus d’informations, consultez Amélioration de la réactivité des scénarios critiques en mettant à jour le comportement de chargement automatique pour les extensions.


---

Icône Notes de publication Avis de sécurité de Visual Studio 2017 version 15.8

Visual Studio 2017 version 15.8.7 Service Release- publiée le 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- publiée le 11 septembre 2018

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

Une vulnérabilité par déni de service existe dans .NET Core 2.1 lorsque System.IO.Pipelines gère incorrectement les requêtes. Un attaquant qui a réussi à exploiter cette vulnérabilité peut provoquer un déni de service contre une application tirant parti de System.IO.Pipelines. La vulnérabilité peut être exploitée à distance, sans authentification. Un attaquant non authentifié distant pourrait exploiter cette vulnérabilité en fournissant des requêtes spécialement conçues à l’application.

CVE-2018-8409 ASP.NET vulnérabilité de déni de service principal

Une vulnérabilité de déni de service existe dans ASP.NET Core 2.1 qui gère incorrectement les demandes web. Un attaquant qui a réussi à exploiter cette vulnérabilité peut provoquer un déni de service contre une application web ASP.NET Core. La vulnérabilité peut être exploitée à distance, sans authentification. Un attaquant non authentifié distant pourrait exploiter cette vulnérabilité en fournissant des requêtes web spécialement conçues à l’application ASP.NET Core.

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

CVE-2018-0952 Vulnérabilité d’é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 Preview 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

Une vulnérabilité d’exécution de code à distance existe dans les logiciels .NET qui peuvent entraîner l’exploitation de l’ordinateur d’un utilisateur en permettant aux 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 Preview 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 Preview 1 -- publiée le 08 mai 2018

CVE-2018-0765 Avis de sécurité Microsoft pour la 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 fournit également des conseils sur ce que les développeurs peuvent faire pour mettre à jour leurs applications afin de supprimer cette vulnérabilité.
  • Microsoft est conscient d’une vulnérabilité de déni de service qui existe lorsque .NET Framework et .NET Core traitent incorrectement les documents XML. Un attaquant qui a réussi à exploiter cette vulnérabilité peut provoquer un déni de service contre une application .NET Framework, .NET Core ou .NET native.
  • La mise à jour résout la vulnérabilité en corrigeant la façon dont les applications .NET Framework, .NET Core et .NET natives gèrent le traitement des documents XML.
  • Si votre application est une application ASP.NET Core, les développeurs sont également invités à effectuer une mise à jour vers ASP.NET Core 2.0.8.

Icône Release Notes IconVisual Studio 2017 version 15.8.1

Publication : 17 août 2018

Principaux problèmes résolus dans la version 15.8.1

Voici les problèmes résolus dans la version 15.8.1 :

  • Correction d’un problème où Visual Studio se fermait de façon inattendue lorsqu’une fenêtre de navigateur était fermée lors du débogage d’un projet web.

Icône Release Notes IconVisual Studio 2017 version 15.8.2

Publication : 28 août 2018

Principaux problèmes résolus dans la version 15.8.2

Voici les problèmes signalés par le client résolus dans la version 15.8.2 :


Icône Release Notes IconVisual Studio 2017 version 15.8.3

Publication : 6 septembre 2018

Principaux problèmes résolus dans la version 15.8.3

Voici les problèmes signalés par le client résolus dans la version 15.8.3 :


Icône Release Notes IconVisual Studio 2017 version 15.8.4

Publication : 11 septembre 2018

Principaux problèmes résolus dans la version 15.8.4

Voici les problèmes signalés par le client résolus dans la version 15.8.4 :

Avis de sécurité


Icône Release Notes IconVisual Studio 2017 version 15.8.5

Publication : 20 septembre 2018

Résumé des nouveautés de la version 15.8.5

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

Principaux problèmes résolus dans la version 15.8.5

Voici les problèmes signalés par le client résolus 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 de déboguer des applications pour iOS 12, tvOS 12 et watchOS 5. Découvrez comment préparer iOS 12 et notre introduction à iOS 12 pour plus d’informations sur les nouvelles fonctionnalités disponibles.


Icône Release Notes IconVisual Studio 2017 version 15.8.6

Publication : 02 octobre 2018

Résumé des nouveautés de la version 15.8.6

Principaux problèmes résolus dans la version 15.8.6

Voici les problèmes signalés par le client résolus dans la version 15.8.6 :

Détails des nouveautés de la version 15.8.6

Dernier Kit de développement logiciel (SDK) Windows 10 pour les développeurs de plateforme Windows universelle

Le dernier SDK Windows 10 (build 17763) est désormais disponible en tant que composant facultatif pour la charge de travail de développement de plateforme Windows universelle. Vous pouvez ajouter ce Kit de développement logiciel (SDK) à la charge de travail en cochant la case à cocher 10.0.17763.0 du Kit de développement logiciel (SDK) Windows 10 (10.0.17763.0).


Icône Release Notes IconVisual Studio 2017 version 15.8.7

Publication : 10 octobre 2018

Nouveautés de la version 15.8.7

Azure DevOps

Visual Studio Team Services est maintenant Azure DevOps ! Vous verrez cette nouvelle personnalisation dans Team Explorer et dans les références dans Visual Studio.

Avis de sécurité

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


Icône Release Notes IconVisual Studio 2017 version 15.8.8

Publication : 24 octobre 2018

Principaux problèmes résolus dans la version 15.8.8

Voici les problèmes signalés par le client résolus dans la version 15.8.8 :


Icône Release Notes IconVisual Studio 2017 version 15.8.9

Publication : 2 novembre 2018

Principaux problèmes résolus dans la version 15.8.9

Voici les problèmes signalés par le client résolus dans la version 15.8.9 :


Problèmes connus

Consultez tous les problèmes connus existants et les solutions de contournement disponibles dans Visual Studio 2017 version 15.8.

Problèmes connus de Visual Studio 2017


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.