Visual Studio 2015 Update 3

Last Update: 01/09/2017

Date de publication : 27 juin 2016

Aujourd’hui, nous sommes heureux d’annoncer la sortie de Visual Studio 2015 Update 3. L’un des principaux problèmes signalés dans Update 2 concernait la consommation de mémoire élevée. Nous avons résolu ce problème dans Update 3 RC, contacté les clients qui l’avaient signalé et reçu un retour positif sur le correctif. Dans Update 3, vous verrez un grand nombre de ces correctifs qui apportent une réponse aux commentaires des clients sur les performances et la stabilité. Il s’agit des notes de mises à jour de la version la plus récente, alors vous ne trouverez peut-être pas celles auxquelles vous vous attendez.

Envoyez-nous vos commentaires à l’aide de l’option Commentaires dans Visual Studio. Vous pouvez également envoyer vos suggestions sur le site UserVoice Visual Studio 2015.

Téléchargement

Vous pouvez télécharger Visual Studio 2015 à partir de My.VisualStudio.com. My.VisualStudio.com nécessite un abonnement Dev Essentials gratuit ou un abonnement Visual Studio.

Pour plus d’informations, consultez Guide pratique pour installer une version spécifique de Visual Studio.

Nouveautés

Autres modifications

Outils pour Apache Cordova

Visual Studio 2015 Update 3 inclut des outils pour Apache Cordova Update 10, notamment les améliorations ci-dessous. Pour plus d’informations sur cette version, consultez les notes de publication des outils pour Apache Cordova pour Update 9 et Update 10. Pour obtenir les dernières informations sur nos outils, visitez notre Blog des développeurs sur GitHub.

  • Nous avons ajouté la prise en charge de Cordova 6.1.1, version par défaut pour les nouveaux projets.
  • Nous avons abandonné le Registre de plug-in Cordova qui était utilisé dans Cordova 4.x, ce qui signifie que nous avons maintenant besoin au minimum de Cordova 5.x ou ultérieur pour ajouter des plug-ins.
  • La liste des plug-ins principaux a été mise à jour et inclut maintenant des plug-ins pour les scénarios d’entreprise, comme Intune, Azure Engagement, la sécurité et le stockage local SQLite.
  • Vous pouvez à présent ajouter des plug-ins à partir du Concepteur de configuration par le nom ou par l’ID du package npm.

plugin-byid

  • Vous pouvez aussi ajouter des plug-ins qui nécessitent des paramètres à partir du Concepteur de configuration.

plugin-parameters

Developer Analytics Tools

Nous avons ajouté les améliorations suivantes à Developer Analytics Tools v7.0.2 :

  • Tendances Application Insights, un outil permettant de rechercher des tendances dans la télémétrie de votre application.
  • Nouveau Télémétrie des exceptions dans CodeLens.
  • Informations de télémétrie de production ajoutées aux exceptions dans les outils de diagnostic.
  • Prise en charge de l’ajout d’Application Insights aux projets ASP.NET Core RC2 depuis Visual Studio.
  • Événements des outils de diagnostic pour les projets ASP.NET 5 RC1 et ASP.NET Core RC2.
  • Actualisations automatiques de la recherche Application Insights quand des filtres de détails, des plages de temps et des événements sont sélectionnés.
  • Accédez au code à partir de demandes effectuées dans la recherche.
  • Expérience améliorée de la connexion à HockeyApp.

Pour plus d’informations, consultez les notes de publication techniques dans la documentation de Microsoft Azure.

Débogage et diagnostics

La prise en charge des outils de diagnostic pour les applications qui s’exécutent sur des appareils OneCore, notamment HoloLens et IoT, a été ajoutée dans Update 3.

Améliorations apportées à Modifier & Continuer dans C++ :

  • Meilleures performances et fiabilité accrue quand FASTLINK est activé.
  • L’application réussie de modifications du code à des bibliothèques statiques ne produit plus de code périmé.
  • Les avertissements C4656 n’apparaissent plus pour les modifications de types « faux positifs » pendant une recompilation.
  • Prise en charge de l’ajout d’un nouveau type portant le même nom à travers plusieurs unités de compilation.

Améliorations du débogage de l’interface utilisateur XAML :

  • Chaque fois que le focus change dans votre application, la nouvelle fonctionnalité de suivi du focus dans l’arborescence d’éléments visuels en direct fait que la sélection dans l’arborescence se met à jour de façon à refléter l’élément ayant actuellement le focus.

IDE Visual Studio

Abonnements et clés de produit

Nous avons apporté dans Update 3 une réponse aux commentaires des clients qui utilisent des abonnements via une identité ou des clés de produit en ligne pour déverrouiller l’IDE, comme suit :

  • Vous n’avez plus besoin de visiter https://my.visualstudio.com pour activer l’abonnement Visual Studio Cloud qui vous est attribué. Vous pouvez commencer immédiatement à utiliser l’IDE Visual Studio dès que l’abonnement est attribué.
  • Nous avons amélioré la gestion des erreurs lors de l’application d’une clé de produit.
  • Toutes les opérations concernant les comptes d’utilisateur et la gestion des licences sont désormais sécurisées via HTTPS.
  • Nous avons apporté des améliorations d’accessibilité dans la boîte de dialogue Paramètres du compte pour l’activation d’un abonnement et l’entrée d’une clé de produit.
  • Nouveau Une nouvelle authentification tous les 8 jours environ n’est plus nécessaire pour conserver le compte de personnalisation actif et synchroniser les paramètres d’itinérance.

Outils pour les applications Windows universelles

Visual Studio 2015 Update 3 comprend plusieurs améliorations des outils pour les applications Windows universelles. Une de nos principales améliorations : vous pouvez maintenant vous connecter avec les informations d’identification Azure Active Directory pour un compte du magasin AAD quand vous créez un package à envoyer au Windows Store. Une fois que le projet a été associé au Windows Store, il n’est plus nécessaire de se connecter pour créer un package à envoyer au magasin.

.NET Native pour les applications Windows universelles

.NET Native 1.4 est une version de maintenance mineure qui améliore les performances, traite plusieurs bogues signalés par les clients et améliore les temps de compilation des builds de mise en production de grandes applications. Les applications XAML et les jeux Unity qui utilisent .NET Native 1.4 auront de meilleures performances d’exécution. Ces améliorations ont été obtenues en rendant la réflexion et les appels d’API en mode natif plus rapides.

Outils d’architecture

Nous avons apporté une réponse aux commentaires des clients sur l’amélioration des performances et de la fiabilité.

Concepteurs graphiques spécifiques à un domaine (notamment EDMX et DBML)

Sur Windows 10, Visual Studio répond maintenant quand vous ouvrez ou que vous tentez de modifier des grands diagrammes EDMX ou DBML alors que le clavier est affiché à l’écran.

Carte du code

  • Visual Studio répond maintenant lors d’une tentative pour « Générer une carte du code pour la solution » quand la solution contenait des projets de programme d’installation (.vdproj).
  • Visual Studio répond maintenant quand vous exécutez une commande de carte du code à partir de l’éditeur de code et fermez la fenêtre Carte du code dès son apparition.

Validation de couche

  • Lors de la création d’une solution avec un projet de modélisation contenant un diagramme de couche avec une action de validation, vous n’utilisez plus un cœur de processeur une fois la build terminée.
  • Vous pouvez maintenant valider un diagramme de couche quand son projet de modélisation parent fait référence à des bibliothèques PCL (par exemple, ODP.Net).

Node.js Tools pour Visual Studio

Nouveau Node.js Tools 1.2 RC pour Visual Studio peut désormais être téléchargé. Nous pensons que cette version apportera des performances et une stabilité considérablement améliorées, notamment une réduction des blocages liés à une mémoire insuffisante des versions antérieures.

Parmi les autres points clés :

  • IntelliSense ES6 meilleur et plus rapide
  • Débogage plus fiable
  • Expériences de tests unitaires améliorées (dont la prise en charge des bandes)
  • Commande .npm dans plus de types de projets

Pour plus d’informations et procéder aux téléchargements, consultez la page de version Node.js Tools 1.2 RC.

Web Developer Tools

Pour les projets d’application web ASP.NET, quand la case « Activer Modifier & Continuer » est décochée, le processus IIS Express ne s’arrête plus chaque fois que vous arrêtez le débogage.

Visual C++

Des améliorations, telles que de nouveaux contrôles et messages d’avertissement pour le compilateur C++, ainsi que des améliorations au niveau des performances et de la prise en charge pour le codage C# et Visual Basic, ont été apportées dans Update 3.

Compilateur C++

  • Nous vérifions maintenant l’accès d’un constructeur de copie/déplacement trivial supprimé. Sans la vérification, nous pouvons appeler incorrectement le constructeur de copie par défaut (dans lequel l’implémentation peut être à un format incorrect) et provoquer la génération potentielle de code incorrect à l’exécution.
  • Std::is_convertible détecte désormais l’auto-assignation d’un type de classe quand le constructeur de copie est supprimé ou privé.
  • Au titre de la dernière phase de la désapprobation de la prise en charge d’ATL avec des attributs commencée dans Visual Studio 2008, nous avons ajouté un nouvel avertissement de désapprobation au compilateur. Avec Visual Studio 2015 Update 3, les utilisations de code ATL avec des attributs génèrent un avertissement de niveau 1 activé par défaut. C4467
  • Lors de l’utilisation de fichiers PCH, les répertoires d’inclusion -l sans correspondance avec le compilateur entre des compilations -Yc et -Yu génèrent maintenant un nouvel avertissement. C4599
  • Lors de l’utilisation de fichiers PCH, les directives #include sans correspondance dans les fichiers sources entre des compilations -Yc et -Yu produisent maintenant un avertissement. C4598

Pour plus d’informations sur l’impact de ces modifications sur votre code existant, consultez Guide de portage et de mise à niveau de Visual C++ sur MSDN.

Bibliothèques C++

  • Nous avons restauré les performances du mode débogage lors de la destruction de plages d’objets triviaux qui ont régressé dans Update 2, comme dans vector.
  • Nous avons implémenté les traits échangeables à partir du document de travail C++17, à partir de la proposition P0185 Ajout de traits échangeables [nothrow]. Au titre d’une fonctionnalité C++17 à venir, les traits (is_swappable, is_swappable_with, is_nothrow_swappable et is_nothrow_swappable_with) sont seulement visibles et les contraintes sur std::swap sont seulement actives lors de la compilation avec /std:c++latest.
  • Nous avons supprimé les appels des événements ETW de vcruntime140.dll et des bibliothèques statiques, qui se déclenchaient pendant le démarrage du processus et l’exécution de dllmain.
  • Nouveau Nous avons supprimé la longueur de nom de symbole dans les mécanismes courants utilisés par les conteneurs STL, par exemple std::vector, ce qui réduit la probabilité d’avertissements C4503. Par exemple, le type suivant ne génère plus d’avertissement : concurrency::concurrent_unordered_map<wstring, vector<pair<uint64_t, vector<uint8_t>>>>.

  • ATL/MFC/AMP/PPL : un grand nombre de corrections de conformité liées à la recherche en deux phases, comme suit :

    • _com_ptr_t a maintenant un constructeur de déplacement et un opérateur d’assignation de déplacement.
    • MFC : correction de la gestion des valeurs HMENU qui empêchaient occasionnellement des menus de s’afficher correctement dans des applications 64 bits.

    • ATL/MFC : plus d’émission des avertissements suivants :

    • Remplacement/masquage de fonction : C4263, C4264, C4266
    • Spécification d’exception non correspondante : C4986
    • /analyze : C6386

    • ATL : toutes les variations d’AtlThrow sont maintenant correctement marquées avec __declspec(noreturn). Ceci empêche l’émission d’avertissements SAL erronés.

    • ATL : correction/amélioration de plusieurs annotations SAL.

    • /std:c++latest active les nouvelles fonctionnalités suivantes : P0025R1 « clamp() », P0185R1 « is_swappable, is_nothrow_swappable » et P0272R1 « Non-const basic_string::data() ».

    • /std:c++latest contrôle également la suppression des anciennes fonctionnalités suivantes : N4190 « Suppression de auto_ptr, random_shuffle(), et des anciens éléments relatifs à », P0004R1 « Suppression des alias Iostreams déconseillés », LWG 2385 « l’argument de l’allocateur function::assign n’a pas sens » et diverses fonctionnalités non standard (l’espace de noms std::tr1, certains mécanismes TR1 uniquement et la structure std::identity).

    • La génération de code silencieuse incorrecte dans atomic<int64_t>/atomic<uint64_t> sur x86 a été corrigée.

    • STL évite maintenant d’utiliser les statiques « magiques » thread-safe, sauf quand c’est absolument nécessaire, améliorant ainsi la génération de code.

    • Le constructeur de transfert parfait de tuple évite maintenant de placer hors concurrence le constructeur de copie, ce qui corrige des erreurs du compilateur dans certains scénarios.

  • Coroutines :

    • Les éléments suivants sont déconseillés : mots clés __yield_value & __await. Utilisez plutôt co_await / co_yield .
    • Un avis de désapprobation a été ajouté à : membres to_address et from_promise de la classe coroutine_handle. Au lieu de coroutine_handle::to_address(), utilisez coroutine_handle::address().
    • Au lieu de coroutine_handle::from_promise(Promise *P), utilisez coroutine_handle::from_promise(Promise &P).
  • Nous avons amélioré les performances des éléments suivants : std::equal et std::lexicographical_compare via une distribution plus agressive de memcmp et de memchr, ce qui permet des améliorations des performances dans certains scénarios, par exemple equal(char,char,char, char) sur les plateformes 64 bits.

    • amélioration significative des versions Debug grâce à la réduction du nombre d’appels de fonction de comptage dans nos mécanismes de débogage d’itérateurs.
    • string::push_back a encore été amélioré de 40 % par rapport à Update 2 dans les builds des versions, avec des améliorations plus importantes dans les versions Debug. (Ceci vient en plus des importantes améliorations des performances de la version Update 2).
    • Les versions Debug ont été améliorées pour tous les algorithmes standard grâce à l’élimination de plusieurs types d’appels de prise en charge de métaprogrammation de modèle vide (par exemple,_Iter_cat), ceci pour tous les algorithmes qui prennent des prédicats, en réduisant le nombre de copies des prédicats.
    • std::mismatch sous _ITERATOR_DEBUG_LEVEL 1 et 2 par plage en vérifiant la deuxième plage si possible avant l’itération.
  • Nous avons appliqué des diagnostics améliorés pour les messages _SCL_INSECURE_DEPRECATE aux algorithmes restants (dans Update 2, seul un petit nombre d’algorithmes ont été raccordés dans le nouveau mécanisme de désapprobation). Ceci améliore également l’expérience du débogage dans les algorithmes standard, car il n’y a plus d’interaction du préprocesseur _ITERATOR_DEBUG_LEVEL déclarant plusieurs copies d’algorithmes standard. Nous avons également corrigé ceci :

    • Nous avons corrigé l’incapacité à compiler certaines fonctions comme mismatch(iter, iter, T[]), due à l’interaction entre nos éléments _ITERATOR_DEBUG_ARRAY_OVERLOADS non standard et les algorithmes de plage double.
  • Nous avons corrigé des violations de l’avertissement désactivé par défaut C4242 dans la bibliothèque STL.
  • Nous avons corrigé le bogue de dépassement possible de capacité d’entier dans std::pop_heap.
  • Nous avons corrigé le blocage potentiel sous/clr:pure en raison d’appels LoadLibrary insérés dans CLR pendant la détention du verrou des paramètres régionaux.

Débogage C++/CLI

  • Nouveau L’évaluateur d’expression C++/CLI prend désormais en charge les fonctionnalités de débogueur, telles que Natvis, qui étaient précédemment prises en charge uniquement pour les applications purement natives. Maintenant, dans une application mixte managée/native, quand les objets sont répertoriés dans une fenêtre variable (ou à l’intérieur d’un DataTip), ils se développent comme dans une application purement native, tel que défini par les visualiseurs de types.

plugin-byid

Outils de plateforme Clang/C2

Nous avons intégré Clang version 3.8 dans Clang/C2 et nous avons fourni un ensemble d’outils hébergés en 64 bits.

MDD C++

Nous avons activé la prise en charge de la dernière version du NDK R11C Android et la possibilité de mettre à niveau les projets en cours pour cibler le dernier NDK.

TypeScript

Nouveau Visual Studio 2015 Update 3 inclut TypeScript 1.8.34. Nous avons corrigé une erreur de mémoire insuffisante dans des grands projets TypeScript qui utilisent AngularJS.

C# et Visual Basic

Nouveau Nous avons travaillé à la réduction de l’encombrement mémoire et à l’amélioration des performances des diagnostics du code. Cela permet de réduire un grand nombre des blocages liés à une mémoire insuffisante des versions antérieures. Nous avons amélioré les performances de l’exécution des diagnostics du code sur une solution complète. Pour en savoir plus sur les améliorations des performances des diagnostics du code, lisez la page Procédure : activation et désactivation de l’analyse de solution complète pour le code managé sur MSDN.

Les autres améliorations sont les suivantes :

  • Une option pour ajouter une référence à un package NuGet sous la forme d’un correctif rapide :

plugin-byid

Vous pouvez activer cette option dans Outils > Options > Éditeur de texte > C# > Avancé, sous « Directives Using » :

plugin-byid

  • Nous avons amélioré la prise en charge pour les bibliothèques de classes portables ciblant la plateforme .NET standard.
  • Nous avons ajouté des améliorations des performances pour l’implémentation de C# de GoTo et de la recherche de toutes les références. Vous pouvez les essayer en sélectionnant un objet, en cliquant avec le bouton droit sur celui-ci, puis en les sélectionnant dans le menu.
  • Quand vous appliquez une action « corriger tout » au document/projet/solution, nous affichons maintenant une barre de progression.
  • Nouveau Amélioration des performances lors du rechargement de projets C# et VB dans les grandes solutions. Pour obtenir plus d’informations et de conseils, lisez Considérations sur les performances pour les grandes solutions.

Team Explorer

Nouveau Plusieurs bogues ont été corrigés dans Team Explorer :

  • Impossible d’afficher le contenu d’un fichier qui a été supprimé d’un dépôt Git.
  • Quand vous affichez l’historique d’une branche, l’icône Atteindre l’enfant doit être désactivée lorsque le focus est la dernière validation.
  • Quand vous modifiez des branches à l’aide de Git.exe, Visual Studio peut se bloquer ou entrer dans un état inconnu.
  • Quand vous affichez l’historique d’une branche dans un dépôt Git, la mise en surbrillance dans le graphique de l’historique présente des défauts.
  • Quand vous créez une branche dans Team Explorer, le raccourci Alt+B de Créer une branche est en conflit avec le menu Générer.
  • En cas d’utilisation élevée de la mémoire, lors de la tentative de décompression d’un objet plus grand que la mémoire disponible, Git affiche une erreur de type « Objet introuvable - aucun objet libre correspondant () » au lieu d’une erreur de mémoire insuffisante.
  • Faute de frappe dans le message d’erreur « ... Pour pouvoir ouvrir cette solution... ».
  • Quand vous affichez l’historique d’une branche et cliquez avec le bouton droit sur la première validation de l’historique, Cherry-Pick est désactivé.
  • Lors de la création d’une requête de tirage à partir de la page des branches Team Explorer, le menu contextuel utilise la branche actuelle au lieu de la branche sélectionnée.

Xamarin pour Visual Studio

Nouveau Visual Studio 2015 Update 3 inclut désormais Xamarin 4.1. En plus d’un certain nombre de correctifs de bogues, cette version ajoute la prise en charge de tvOS, améliore la prise en charge du catalogue de ressources iOS, améliore l’expérience d’édition XML et ajoute des sélecteurs pour les implémentations SSL/TLS et HttpClient lors de la création d’applications iOS. Pour plus d’informations, consultez les Notes de publication de Xamarin.

Problèmes connus

Pour une description complète des problèmes connus dans cette version, consultez l’article MSDN suivant : Problèmes connus de Visual Studio Update 3.