Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Notes de publication de
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 :
- Visual Studio 2017 version 15.8 -- Lisez le dernier billet de blog !
Versions de Visual Studio 2017 version 15.8
- 2 novembre 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.9
- 24 octobre 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.8
- 10 octobre 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.7
- 02 octobre 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.6
- 20 septembre 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.5
- 11 septembre 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.4
- 6 septembre 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.3
- 28 août 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.2
- 17 août 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.1
- 14 août 2018 -- Visual Studio 2017 version 15.8 Version mineure
Important
Avis de sécurité de Visual Studio 2017 version 15.8
- 10 octobre 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.7
- 11 septembre 2018 -- Mise à jour de maintenance de Visual Studio 2017 version 15.8.4
- 14 août 2018 -- Visual Studio 2017 version 15.8
- 10 juillet 2018 -- Visual Studio 2017 version 15.8 Preview 4
- 26 juin 2018 -- Visual Studio 2017 version 15.8 Preview 3
- 08 mai 2018 -- Visual Studio 2017 version 15.8 Preview 1
Résumé des nouvelles fonctionnalités notables dans la version 15.8
- Le programme d’installation offre désormais la possibilité de télécharger tous les fichiers avant de commencer l’installation.
- Nous avons amélioré les performances lors du rechargement/rechargement du projet et du basculement de branche.
- Les temps de chargement des solutions peuvent être améliorés en désactivant la restauration automatique des documents.
- Nous avons apporté des améliorations significatives des performances de test lors de l’exécution de solutions volumineuses avec plusieurs projets de test.
- Visual Basic vous offre désormais une amélioration significative des performances.
- Le profilage des performances offre désormais la possibilité de suspendre/reprendre la collecte de données et un nouvel outil de suivi de l’allocation d’objets .NET a été ajouté.
- Nous avons apporté des améliorations à l’outil Utilisation du processeur pour le profilage des performances.
- Nous avons ajouté de nouvelles fonctionnalités de productivité , telles que le nettoyage du code, la refactorisation de la refactorisation, accéder au bloc englobant, la prise en charge multi-caret et les nouveaux profils clavier.
- Vous pouvez choisir votre instance cible lors du débogage des extensions.
- Lancez le débogueur d’instantané directement à partir de la page récapitulative de publication.
-
Nous avons introduit F# 4.5, une nouvelle version de langage qui prend entièrement en charge
Span<'T>et contient des améliorations significatives apportées aux traces de pile pour le code asynchrone. - Nous avons amélioré les performances et ajouté de nouvelles fonctionnalités dans les outils F# , comme Ctrl+Clicpour accéder à la définition.
- Les améliorations apportées à l’ensemble d’outils C++ incluent des améliorations apportées à l’optimiseur SSA et à l’éditeur de liens.
- Les ajouts de développement multiplateforme C++ incluent les mises à jour ClangFormat et les modèles de configuration dans CMake et Open Folder pour MinGW, Linux et Windows.
- Les modifications apportées à la productivité C++ incluent les info-bulles De modèle IntelliSense, les info-bulles d’informations rapides sur les macros, la conversion en ampoules constexpr, l’analyse du code dans l’éditeur sequiggles, etc.
- Les améliorations apportées au débogage C++ incluent uniquement les mises à jour de mon code et les nouveaux points d’arrêt de données.
- Il existe de nombreuses améliorations et fonctionnalités JavaScript et TypeScript .
- Vous pouvez désormais gérer les bibliothèques côté client dans vos projets web.
- Nous avons ajouté une nouvelle expérience de conteneur Docker de projet unique pour ASP.NET projets web Core.
- Vous pouvez maintenant personnaliser la balise d’une image Docker avec les améliorations apportées à la publication dans cette version.
- Les améliorations apportées à Xamarin incluent la prise en charge de Xcode 9.4 et des builds incrémentielles Android plus intelligentes.
- Vous pouvez utiliser l’émulateur Android de Google côte à côte avec Hyper-V sur Windows 10 avril 2018 Update.
- Nous avons ajouté un éditeur en mode fractionné pour le concepteur Xamarin.Android.
- L’aperçu Xamarin.Forms dispose désormais de la prise en charge de la boîte à outils et nous l’avons déplacé vers un éditeur en mode fractionné.
- Vous pouvez maintenant utiliser le débogage inter-langage avec Python 3.7.0rc1.
- Les paramètres de migration de fonction Azure local vers Azure affichent désormais de nouvelles valeurs.
- Avec la prise en charge ajoutée d’Azure Functions, vous disposez maintenant d’un nouvel hôte cible dans la boîte de dialogue Configurer la livraison continue vers Azure.
- L’amélioration du volet résumé de l’Explorateur de tests fournit désormais un état de test plus informatif.
- Extensions de l’adaptateur de test .NET : changement cassant et dépréciation.
- Nous avons ajouté la prise en charge native du protocole Language Server.
- Vous disposez maintenant de la prise en charge des secrets pour ASP.NET projets .NET Framework.
- Visual Studio vous aide maintenant à mettre à niveau ASP.NET applications .NET Framework pour améliorer les performances de génération.
- Visual Studio offre désormais des outils de développement .NET Framework 4.7.2 aux plateformes prises en charge avec le runtime 4.7.2 inclus.
- Les packages de chargement automatique asynchrone sont retardés jusqu’à ce que le démarrage et le chargement de la solution soient terminés.
- Build Tools Visual Studio 2017 prend désormais en charge workflow et inclut le VSSDK.
- L’état Git et TFS sont désormais mis à jour correctement pour les modifications de fichiers externes dans les projets .NET Core.
- Le KIT SDK .NET Core 2.1.400 est inclus.
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 :
- SSDT non présent dans Visual Studio Build Tools 2017.
- Anaconda ne parvient pas à désinstaller pendant la mise à niveau (Erreur 87).
- La mise à niveau vers la version 15.7 génère une erreur : PackageId :Anaconda3.Exe.x64 ; PackageAction :Uninstall ; ReturnCode :87 ;.
- La mise à jour de Visual Studio génère UWP BuildError sur MakePri 0x80073b0f et 0xdef00532 erreurs sur ma solution.
- VS 2017 rencontre des problèmes avec la fonctionnalité de modèle d’exportation ASP.NET Core.
- Explorateur de tests (tests SpecFlow) : accède au fichier de classe de fonctionnalités et non au fichier de fonctionnalité.
- Le modèle de projet exporté à partir d’un projet C++ contient uniquement un vcxproj et vcxproj.filters, aucune source ou en-tête.
- Codegen incorrect sur x64.
- Cliquez avec le bouton droit sur le menu contextuel d’un dossier de solution ne fait rien dans Enterprise 15.8 Preview 2.
- VS2017 ne mémorise pas la position et la taille de l’écran à utiliser sur 3 moniteurs.
- UTF8-no-BOM provoque l’affichage d’un avertissement d’encodage erroné.
- Double-cliquez sur un mot uniquement pour le début du mot, et non sur le mot entier.
- VS2015 et VS2017 créent un dossier de débogage vide dans le chemin défini par $(SolutionDir) malgré $(OutDir) et $(IntDir) à l’aide de paramètres complètement différents.
- Si vous créez un projet basé sur des dialogues MFC dans un environnement japonais avec VS2017, la modification de la boîte de dialogue entraîne des erreurs dans la build.
- Télécharger l’affichage du texte de progression sur Visual Studio Installer.
- Cliquez avec le bouton droit sur le projet exécutable dans l’Explorateur de solutions -> Déboguer -> Démarrer une nouvelle instance choisit un projet aléatoire à partir de la solution à démarrer.
- La build de ligne de commande DEVENV échoue avec : cette opération peut uniquement avoir lieu dans le thread d’interface utilisateur.
- Recherchez et remplacez les types de fichiers.
- Les messages d’erreur ne sont pas lisibles dans la console du Gestionnaire de package en raison de la couleur de police et de la couleur d’arrière-plan.
- La préversion de publication web visual Studio Community 2017 15.4.1 échoue sans autorisation.
- Ouvrez les résultats des tests dans VS 2017 pour les builds XAML.
Consultez tous les problèmes signalés par le client résolus dans Visual Studio 2017 version 15.8.
Détails des nouveautés de la version 15.8
Icône
Visual 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.
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.
(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.
(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.
(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
ifmot 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_operatorsdotnet_style_parentheses_in_relational_binary_operatorsdotnet_style_parentheses_in_other_binary_operatorsdotnet_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_assignmentdotnet_style_prefer_conditional_expression_over_return
-
Invert If vous permet d’inverser votre logique dans les instructions if-else. Placez votre curseur dans le
- 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.
(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).
(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
voidptrtype. - Nouveautés
NativePtr.ofVoidPtretNativePtr.toVoidPtrfonctions dans FSharp.Core. - De nouveaux types
inref<'T>etoutref<'T>, qui sont respectivement des byrefs en lecture seule et des byrefs en écriture seule. Cela correspond etin refout refen C#. - Capacité à produire
ByRefLikedes structs (tels queSpanetReadOnlySpan). - Capacité à produire
IsReadOnlydes structs. - Déréférencement implicite des
byrefméthodes ( etinref- 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
AccessViolatioNExceptionutilisationyield!avec des énumérables basés sur des structs. - Il est désormais possible d’hériter de
FSharpFuncnouveau. - 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
WarningsNotAsErrorsque 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.FromFuncetFuncConvert.FromActionLES API qui tapezSystem.FuncetSystem.Actionsurchargent, pour faciliter l’interopérabilité avec C#. Vous pouvez en savoir plus dans la RFC pour cette fonctionnalité. -
ValueOptionest 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é. -
TryGetValueest 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
booll’instant utilise une comparaison générique rapide, contribuée par Vasily Kirichenko. - Le texte de synthèse pour
Array.allPairslequel 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
printfles 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
DictionaryavecContainsKeyet les appels suivantsItema été modifié pour l’utiliserTryGetValue, 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.fsidans FSharp.Core ont été divisés enasync.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).
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).
- 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).
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).
- 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).
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).
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) :
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.
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.
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.
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.
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).
- 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 :
- Blog RTM .NET Framework 4.7.2
- Notes de publication de .NET Framework 4.7.2
- Problèmes connus dans .NET Framework 4.7.2
- Compatibilité des applications dans .NET Framework 4.7.2
- Modifications de l’API
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.
---
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
Visual 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
Visual 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 :
- Publication de l’élément de menu contextuel de fichier unique manquant.
- Échec des opérations réseau GIT : impossible de générer git-askpass.exe.
- Échec de la charge « Package de l’éditeur de ressources Visual C++ ».
- La transformation en préversion génère une erreur.
- Impossible de taper l’accolades de fermeture.
- Référence d’objet non définie sur une instance d’un objet lors du déploiement du projet Service Fabric après la mise à jour 15.8.0.
- Erreur d’installation « Le format du chemin d’accès donné n’est pas pris en charge ».
- Échec de la tâche ExpandPriContent. Caractères non valides dans le chemin.
- Erreur du programme d’installation « Impossible de créer une instance de type System.Collections.Genertic.Iset'1[Signer] ».
- Le déploiement de Service Fabric échoue dans la version 15.8.0.
- Impossible de créer un package d’application pour le Windows Store.
- Génération de code incorrecte pour les ressources fortement typées.
- Liaison de clavier pour la disposition italienne.
- IntelliSense rompu #9999.
- Lorsque vous travaillez sur un projet Unity et Unity réécrit plusieurs fichiers projet, Visual Studio Tools pour Unity recharge désormais automatiquement la solution.
- Le client obtient maintenant une boîte de dialogue pour fermer les applications Office s’il bloque l’installation de Visual Studio et provoque un échec de 1303.
Icône
Visual 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 :
- Visual Studio 2017 version 15.8.2 contenait une version préliminaire du KIT SDK .NET Core 2.1.401 incompatible avec Visual Studio. Nous avons corrigé ce problème avec Visual Studio 2017 version 15.8.3.
- Échec de création de cas de test VSCppUnit.
- Python IntelliSense ne fonctionne pas sur Python 2.7.
- Le concepteur XAML provoque la fermeture inattendue de Visual Studio.
Icône
Visual 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 :
- La fonction Constexpr avec un paramètre explicite (void) bloque la version MSVC 15.8.0.
- TypeScriptLspCodeActionProvider a rencontré une erreur et a été désactivé.
- Le package « Composants web partagés » n’a pas été chargé correctement.
- La modification de CSS avec le lien du navigateur activé peut bloquer Visual Studio.
- Le déploiement de Service Fabric échoue dans la version 15.8.0.
- Erreur incorrecte pour le pointeur constexpr vers les membres avec VS2017 15.8.
- Constexpr ne prend pas en charge __declspec(dllimport) dans VS2017 15.8.
- C++ VS 2017 Update 8 différence dans le pointeur de fonction membre entre les modes C++14 et C++17 entraîne des blocages.
- TestExplorer verrouille l’interface utilisateur dans la dernière build.
- [WebKit] « Symbole déjà défini » pour la définition de membre de modèle statique (régression).
- Erreur du compilateur interne VS 15.8.0.
- Erreur du compilateur interne dans la fonction constexpr.
- La fenêtre explorateur de tests reste vide avec Express.
- Visual Studio 2017 ne parvient pas à s’ouvrir sur une machine compatible FIPS..
- Erreur interne du compilateur VS2017 15.8 « msc1.cpp », ligne 1518 lors de l’évaluation d’une fonction constexpr simple.
- Erreur irrécupérable C1001 après la mise à jour vers VS 15.8.0.
- Migration vers VS2017 15.8 : erreur du compilateur interne lors de l’utilisation de fonctions constexpr en tant que paramètres de modèle.
- Erreur du compilateur interne lors de la compilation d’une fonction de modèle avec un constexpr dans VC++ 15.8.0.
- Le code généré par le compilateur VC 15.8.1 entraîne un blocage.
Avis de sécurité
- CVE-2018-8409 Vulnérabilité de déni de service .NET Core
- CVE-2018-8409 ASP.NET vulnérabilité de déni de service principal
Icône
Visual 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 :
- L’info-bulle du débogueur ne se développe pas dans la session de débogage Xamarin.iOS.
- Le débogueur ne me laissera pas quitter le point d’exécution (Android).
- Après la mise à jour vers la version 15.8.1, le conseil de données ne s’affiche pas lors du débogage.
- L’info-bulle de données du débogueur ne développe pas [Éditeur].
- Exception :MSB0001 : erreur MSBuild interne : déjà inscrite pour le moment de la génération.
- Chemin d’accès incorrect à la ressource dans le manifeste pour ClickOnce après la mise à niveau vers VS 15.8.1.
- Erreur du manifeste ClickOnce dans la version 15.8.
- ClickOnce Publish manque certaines références.
- ClickOnce : Fichier de langue copié à un emplacement incorrect.
- Référence manquante dans le dossier de publication ClickOnce.
- La compilation non-.NET projets F# de style SDK entraîne une erreur MSBuild interne, sauf si le parallélisme MSBuild est défini sur 1.
- F# n’est pas NGEN’d dans Visual Studio.
- F# déploie le fichier binaire FSharp.Core 4.5.0.0 dans l’emplacement 4.4.3.0.
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
Visual Studio 2017 version 15.8.6
Publication : 02 octobre 2018
Résumé des nouveautés de la version 15.8.6
- Le sdk Windows 10 le plus récent est disponible.
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 :
- Les packages NuGet pour IntelliSense sont rompus.
- Visual Studio se ferme après l’ouverture de sln.
- Éditeur XML App.Config toujours gelé dans la version 15.8.4.
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
Visual 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
Visual 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 :
- /DEBUG :FASTLINK sans informations de débogage pour les types STL inclus via PCH.
- Codegen incorrect vu dans le compilateur RTW 15.8.
- Altération du tas dans le déroulement de la pile lors de l’incorporation de la fonction.
- L’éditeur de liens consomme 6 Go de mémoire pour un cas de test spécifique.
Icône
Visual 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 :
- Ajout de la prise en charge de Xcode 10.1 dans Visual Studio Tools pour Xamarin.
- Mise à jour du modèle Xamarin.Forms vers Xamarin.Forms 3.3.0.
- La mise à jour 15.8.6 interrompt les projets d’installation.
- Erreur interne du compilateur dans VS15.8 msc1.cpp ligne 1518.
- Projets d’installation microsoft Visual Studio 2017 0.8.8 et VS 15.8.6.
- SFINAE ne parvient pas à détecter la fonction surchargée correspondante dans la préversion VS Preview 3 15.9.0.
- Blocage du concepteur XAML sur Visual Studio fermé.
Problèmes connus
Consultez tous les problèmes connus existants et les solutions de contournement disponibles dans Visual Studio 2017 version 15.8.
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.