Visual Studio 2015 Update 3

Last Update: 01.09.2017

Freigabedatum: 27. Juni 2016

Heute geben wir mit großer Freude die Veröffentlichung von Visual Studio 2015 Update 3 bekannt. Eines der am häufigsten gemeldeten Probleme in Update 2 war der hohe Speicherverbrauch. Wir haben uns in Update 3 RC mit diesem Problem befasst und bei den betroffenen Kunden nachgefragt. Die Rückmeldungen zu dieser Korrektur waren positiv. In Update 3 finden Sie viele Korrekturen, die sich auf Kundenfeedback zu Leistung und Stabilität beziehen. Wenn es sich dabei nicht um die Anmerkungen zum Release handelt, die Sie erwartet haben: Sie sind bei den Anmerkungen zum Release der aktuellsten Version gelandet.

Senden Sie uns Ihr Feedback über die Option Feedback in Visual Studio. Sie können auch Vorschläge über die Visual Studio 2015 UserVoice-Website einsenden.

Herunterladen

Sie können Visual Studio 2015 von My.VisualStudio.com herunterladen. My.VisualStudio.com erfordert ein kostenloses Dev Essentials-Abonnement oder ein Visual Studio-Abonnement.

Weitere Informationen finden Sie unter Vorgehensweise: Installieren einer bestimmten Version von Visual Studio.

Neues

Weitere Änderungen

Tools für Apache Cordova

Visual Studio 2015 Update 3 enthält Tools für Apache Cordova Update 10, einschließlich der folgenden Verbesserungen. Weitere Informationen zu dieser Version finden Sie in den Tools für Apache Cordova-Versionsanmerkungen für Update 9 und Update 10. Die neuesten Informationen zu unseren Tools finden Sie in unserem Entwicklerblog auf GitHub.

  • Unterstützung für Cordova 6.1.1, die Standardversion für neue Projekte, wurde hinzugefügt.
  • Wir haben die Cordova-Plug-In-Registrierung zurückgezogen, die in Cordova 4.x verwendet wurde, was bedeutet, dass aktuell Cordova 5.x oder höher zum Hinzufügen von Plug-Ins erforderlich ist.
  • Die Core Plug-In-Liste wurde aktualisiert und enthält jetzt Plug-Ins für Enterprise-Szenarien, wie etwa Intune, Azure-Engagement, Sicherheit und SQLite mit lokalem Speicher.
  • Sie können jetzt Plug-Ins aus dem Config-Designer entweder anhand des NPM-Paketnamens oder anhand der ID hinzufügen.

plugin-byid

  • Zudem können Sie Plug-Ins hinzufügen, für die Parameter vom Config-Designer erforderlich sind.

plugin-parameters

Analysetools für Entwickler

Folgende Verbesserungen zu Developer Analytics Tools v7.0.2 wurden hinzugefügt:

  • Application Insights-Trends, ein Tool zum Ermitteln von Trends in der Telemetrie Ihrer App.
  • Neu: Ausnahmetelemetrie in CodeLens.
  • Produktionstelemetriedaten zu Ausnahmen in Diagnosetools hinzugefügt.
  • Unterstützung für das Hinzufügen von Application Insights zu ASP.NET Core RC2-Projekten aus Visual Studio.
  • Diagnosetoolsereignisse für ASP.NET 5 RC1- und ASP.NET Core RC2-Projekte.
  • Automatische Aktualisierungen der Application Insights-Suche, wenn Detailfilter, Zeitbereiche und Ereignisse ausgewählt sind.
  • Aus Anforderungen in der Suche zum Code wechseln.
  • Verbesserte Benutzeroberfläche zur HockeyApp-Anmeldung.

Weitere Informationen finden Sie in den technischen Versionsanmerkungen in der Microsoft Azure-Dokumentation.

Debuggen und Diagnose

In Update 3 wurde Unterstützung für die Diagnosetools für Anwendungen hinzugefügt, die auf OneCore-Geräten ausgeführt werden, einschließlich HoloLens und IoT.

Verbesserungen für C++-Bearbeiten und Fortfahren:

  • Bessere Leistung und Zuverlässigkeit, wenn FASTLINK aktiviert ist.
  • Die erfolgreiche Übernahme von Codeänderungen auf statische Anwendungen führt nicht mehr zu veraltetem Code.
  • Es werden keine C4656-Warnungen mehr für falsch positive Typänderungen während der Neukompilierung angezeigt.
  • Unterstützung für das Hinzufügen eines neuen Typs mit gleichem Namen über mehrere Kompilierungseinheiten hinweg.

Verbesserungen beim XAML-UI-Debuggen:

  • Bei jedem Fokuswechsel in Ihrer App bewirkt das neue Fokus nachverfolgen-Feature in der visuellen Echtzeitstruktur die Aktualisierung auf das Element, das aktuell den Fokus hat.

Visual Studio-IDE

Abonnements und Product Keys

In Update 3 wurde Feedback von Kunden berücksichtigt, die Abonnements mithilfe von Online-IDs oder Product Keys zum Entsperren der IDE verwenden, und zwar in folgender Weise:

  • Sie können Visual Studio-IDE sofort verwenden, sobald das Visual Studio Cloud-Abonnement zugewiesen wurde, und müssen nicht mehr zu https://my.visualstudio.com navigieren, um das zugewiesene Abonnement zu aktivieren.
  • Die Problembehandlung beim Anwenden eines Product Keys wurde verbessert.
  • Alle Vorgänge, die Benutzerkonten und Lizenzierung betreffen, sind nun über HTTPS gesichert.
  • Die Barrierefreiheit im Dialogfeld "Kontoeinstellungen" beim Aktivieren eines Abonnements und beim Eingeben eines Product Keys wurde verbessert.
  • Neu Eine erneute Authentifizierung alle 8 Tage ist nicht mehr erforderlich, damit das Personalisierungskonto aktiv bleibt und Roamingeinstellungen synchronisiert werden.

Tools für universelle Windows-Apps

Visual Studio 2015 Update 3 enthält eine Reihe von Verbesserungen an den Tools für universelle Windows-Apps. Eine wichtige Verbesserung ermöglicht Ihnen jetzt, sich mit Azure Active Directory-Anmeldeinformationen für ein AAD Store-Konto anzumelden, wenn Sie ein Paket zum Einreichen beim Windows Store erstellen. Nachdem das Projekt dem Windows Store zugeordnet wurde, müssen Sie sich nicht mehr anmelden, um ein Paket für die Einreichung beim Store zu erstellen.

.NET Native für universelle Windows-Apps

.NET Native 1.4 ist eine kleineres Service Release, das die Leistung verbessert, mehrere von Kunden gemeldete Fehler behebt und die Versionsbuild-Kompilierungszeiten großer Apps verbessert. XAML-Anwendungen und Unity-Spiele, die .NET Native 1.4 verwenden, verfügen jetzt über eine bessere Leistung zur Laufzeit. Diese Verbesserungen wurden erreicht, indem sowohl Reflektion als auch Aufrufe der systemeigenen API schneller gemacht wurden.

Architekturtools

Wir haben uns mit dem Feedback von Kunden befasst, um Leistung und Zuverlässigkeit zu verbessern.

Domänenspezifische grafische Designer (einschließlich EDMX und DBML)

Das Problem, dass Visual Studio nicht mehr reagierte, wenn Sie unter Windows 10 große EDMX- oder DBML-Diagramme öffnen oder zu bearbeiten versuchten, während die Bildschirmtastatur angezeigt wurde, ist behoben.

Code Map

  • Das Problem, dass Visual Studio nicht mehr reagierte, wenn Sie versuchten, „Code Map für Projektmappe generieren“ auszuführen und die Projektmappe Installerprojekte (.vdproj) enthielt, ist behoben.
  • Das Problem, dass Visual Studio nicht mehr reagierte, wenn Sie einen Code Map-Befehl aus dem Code-Editor ausführten und anschließend das Code Map-Fenster schlossen, sobald es angezeigt wurde, ist behoben.

Ebenenüberprüfung

  • Beim Erstellen einer Projektmappe mit einem Modellierungsprojekt, das ein Ebenendiagramm mit einer Überprüfen-Aktion enthält, wird nach dem Abschließen des Builds kein CPU-Kern mehr genutzt.
  • Sie können jetzt eine Überprüfung eines Ebenendiagramms ausführen, wenn dessen übergeordnetes Modellierungsobjekt auf PCL-Bibliotheken (z. B. ODP.Net) verweist.

Node.js-Tools für Visual Studio

Neu Node.js Tools 1.2 RC für Visual Studio ist jetzt zum Download verfügbar. Wir erwarten, dass diese Version deutlich verbesserte Stabilität und Leistung, aufweist und die in früheren Versionen aufgrund ungenügenden Arbeitsspeichers ausgelösten Out-of-Memory-Abstürze verringert werden.

Hier weitere Highlights:

  • Schnelleres, besseres ES6-IntelliSense
  • Zuverlässigeres Debuggen
  • Verbesserte Erfahrungen bei Komponententest (einschließlich Bandunterstützung)
  • .npm-Befehl in weiteren Projekttypen

Vollständige Informationen und Downloads finden Sie auf der Seite Node.js Tools 1.2 RC.

Web-Entwicklertools

Für ASP.NET-Webanwendungsprojekte wird der IIS Express-Prozess jetzt nicht mehr bei jedem Anhalten des Debugvorgangs beendet, wenn das Kontrollkästchen „Bearbeiten und Fortfahren aktivieren“ deaktiviert ist.

Visual C++

Update 3 bietet Erweiterungen, z. B. neue Prüfungen und Warnmeldungen für den C++-Compiler sowie die Verbesserungen bei Unterstützung und Leistung für C#- und Visual Basic-Codierung.

C++ Compiler

  • Wir überprüfen jetzt den Zugriff eines gelöschten trivialen Kopier-/Bewegungskonstruktors. Ohne diese Überprüfung wird der nicht funktionierende Kopierkonstruktor (dessen Implementierung möglicherweise ein falsches Format aufweist) möglicherweise fälschlicherweise aufgerufen führt zur Laufzeit zur Generierung von ungültigem Code.
  • Std::is_convertible erkennt die Selbstzuweisung eines Klassentyps jetzt richtig, wenn der Kopierkonstruktor gelöscht wird oder privat ist.
  • Als letzte Phase beim Abschließen der Veraltung der Unterstützung von attributiertem ATL, die in Visual Studio 2008 begann, wurde dem Compiler eine neue Veraltungswarnung hinzugefügt. Ab Visual Studio 2015 Update 3 löst die Verwendung von attributiertem ATL-Code eine standardmäßig aktivierte Warnung der Ebene 1 aus. C4467
  • Bei der Verwendung von PCH-Dateien lösen Zuordnungsfehler bei -I Includeverzeichnissen für den Compiler zwischen -Yc- und -Yu-Kompilierungen jetzt eine neue Warnung aus. C4599
  • Bei der Verwendung von PCH-Dateien führen nicht übereinstimmende #include-Anweisungen in Quelldateien zwischen -Yc- und -Yu-Kompilierungen jetzt zu einer Warnung. C4598

Weitere Informationen über mögliche Auswirkungen dieser Änderungen auf Ihren vorhandenen Code finden Sie unter Visual C++-Handbuch: Portieren und Aktualisieren auf MSDN.

C++-Bibliotheken

  • Die Leistung im Debugmodus beim Zerstören von Bereichen von trivialen Objekten, die in Update 2 zu einem Regress geführt hatten (etwa bei „vector“), wurde wiederhergestellt.
  • Die austauschbaren Merkmale aus dem C++17-Arbeitspapier aus Vorschlag P0185 – Hinzufügen von austauschbaren [nothrow-]Merkmalen wurden implementiert. Als spekulatives C++17-Feature sind die Merkmale (is_swappable, is_swappable_with, is_nothrow_swappable und is_nothrow_swappable_with) nur sichtbar, und die Einschränkungen für std::swap sind nur aktiv, wenn die Kompilierung mit /std:c++latest erfolgt.
  • Die ETW-Ereignisaufrufe wurden aus „vcruntime140.dll“ und statischen Bibliotheken entfernt, die bisher während des Prozessstarts und bei dllmain auslösten.
  • Neu Die Beschränkung der Symbolnamenlänge in von STL-Containern häufig verwendeten Mechanismen, z. B. „std::vector“, wurde entfernt und somit die Wahrscheinlichkeit von C4503-Warnungen reduziert. Der folgende Typ generiert beispielsweise keine Warnung mehr: concurrency::concurrent_unordered_map<wstring, vector<pair<uint64_t, vector<uint8_t>>>>.

  • ATL/MFC/AMP/PPL: Viele Behebungen von Kompatibilitätsproblemen im Zusammenhang mit dem zweistufigen Nachschlagen, wie hier dargestellt:

    • _com_ptr_t verfügt jetzt über einen Bewegungskonstruktor und einen Bewegungszuweisungsoperator.
    • MFC: Die Behandlung von HMENU-Werten, die gelegentlich die ordnungsgemäße Darstellung von Menüs in 64-Bit-Anwendungen verhindert haben, wurde behoben.

    • ATL/MFC: Die folgenden Warnungen werden nicht mehr ausgegeben:

    • Funktionsüberschreibung/-ausblendung: C4263, C4264, C4266
    • Nicht übereinstimmende Ausnahmespezifikation: C4986
    • /analyze: C6386

    • ATL: Alle Varianten von „AtlThrow“ werden jetzt ordnungsgemäß mit __declspec(noreturn) gekennzeichnet. Dies verhindert eine Ausgabe von falschen SAL-Warnungen.

    • ATL: Verschiedene SAL-Warnungen wurden behoben/verbessert.

    • /std:c++latest aktiviert die folgenden neuen Features: P0025R1 „clamp()“, P0185R1 „is_swappable, is_nothrow_swappable“ und P0272R1 „Non-const basic_string::data().“.

    • "/std:c++latest" steuert darüber hinaus die Entfernung der folgenden alten Features: N4190 "Removing auto_ptr, random_shuffle(), And Old Stuff", P0004R1 "Removing Deprecated Iostreams Aliases", LWG 2385 "function::assign allocator argument doesn't make sense" und verschiedene nicht standardmäßige Features (der Namespace "std::tr1", einige nur mit TR1 zu verwendende Komponenten und die Struktur "std::identity").

    • Die lautlose Generierung von ungültigem Code in "atomic<int64_t>/atomic<uint64_t>" auf x86 wurde behoben.

    • STL vermeidet jetzt die Verwendung von threadsicheren "magic statics", wenn dies nicht unbedingt erforderlich ist, wodurch die Codegenerierung verbessert wird.

    • Der perfekte Tuple-Weiterleitungskonstruktor steht jetzt nicht mehr im Wettbewerb mit dem Kopierkonstruktor, was Compilerfehler in bestimmten Szenarien behebt.

  • Coroutinen:

    • Folgendes wurde als veraltet definiert: __yield_value & __await-Schlüsselwörter. Verwenden Sie stattdessen co_await / co_yield .
    • Ein Veraltungshinweis wurde hinzugefügt: to_address- und from_promise-Mitglieder der coroutine_handle-Klasse. Verwenden Sie statt coroutine_handle::to_address() jetzt coroutine_handle::address().
    • Verwenden Sie statt coroutine_handle::from_promise(Promise *P) jetzt coroutine_handle::from_promise(Promise &P).
  • Hier wurde die Leistung verbessert: std::equal und std::lexicographical_compare durch aggressivere Verteilung auf memcmp und memchr, was in einigen Szenarien zu deutlichen Leistungsverbesserungen führt. Beispiel: equal(char,char,char, char) auf 64-Bit-Plattformen.

    • Debugbuilds erheblich durch Verringern der Anzahl von Buchhaltungsfunktionsaufrufen in den Interna des Iteratordebuggers.
    • string::push_back wurde im Vergleich mit Update 2 in Releasebuilds um weitere 40 % verbessert, bei noch erheblicheren Verbesserungen in Debugbuilds. (Dies zusätzlich zu den erheblichen Leistungsverbesserungen in diesem Punkt, die in Update 2 realisiert wurden.)
    • Debugbuilds wurden quer über alle Standardalgorithmen verbessert, indem eine Reihe von Aufrufen von Leervorlagen zur Metaprogrammierungsunterstützung entfernt wurde (z. B. _Iter_cat), quer über alle Algorithmen, die Prädikate annehmen, hinweg, indem die Anzahl der Prädikatkopien verringert wurde.
    • std::mismatch unter _ITERATOR_DEBUG_LEVEL 1 und 2 durch Bereichsprüfung des zweiten Bereichs vor der Iteration, sofern möglich.
  • Die Diagnose wurde für _SCL_INSECURE_DEPRECATE-Nachrichten für die verbleibenden Algorithmen verbessert (in Update 2 war nur eine kleine Anzahl Algorithmen in den neuen Veraltungsmechanismus eingehängt). Dadurch verbessert sich auch das Debugverhalten beim Debuggen in Standardalgorithmen, da keine _ITERATOR_DEBUG_LEVEL-Präprozessorinteraktion mehr auftritt, bei der mehrere Kopien von Standardalgorithmen deklariert werden. Ferner wurden folgende Probleme behoben:

    • Bestimmte Funktionen, wie etwa „mismatch(iter, iter, T[])“, konnten bislang aufgrund der Wechselwirkungen zwischen den nicht standardmäßigen _ITERATOR_DEBUG_ARRAY_OVERLOADS- und Zweibereichsalgorithmen nicht kompiliert werden. Dies wurde behoben.
  • Verstöße gegen die standardmäßig deaktivierte Warnung C4242 in der STL wurden behoben.
  • Ein Fehler im Zusammenhang mit einem möglichen Integerüberlauf in „std::pop_heap“ wurde behoben.
  • Ein mögliches Hängen unter „/clr:pure“ aufgrund von per CLR eingefügten LoadLibrary-Aufrufen beim Halten der lokalen Sperre wurde behoben.

C++/CLI-Debugging

  • Neu Die C++/CLI-Ausdrucksauswertung unterstützt jetzt Debuggerfunktionen wie Natvis, die zuvor nur für reine systemeigene Apps unterstützt wurden. Wenn Objekte in einer gemischten verwalteten/systemeigenen App in einem Variablenfenster (oder in einem DataTip) aufgelistet werden, werden diese jetzt genau wie in einer reinen systemeigenen App gemäß der Typ-Schnellansichten erweitert.

plugin-byid

Clang/C2-Plattformtoolset

Clang 3.8-Version wurde in Clang/C2 integriert und ein gehostetes 64-Bit-Toolset wird bereitgestellt.

C++ MDD

Wir haben Unterstützung für die neueste Android NDK-Version R11C und die Möglichkeit zum Upgrade der aktuellen Projekte auf das neueste NDK als Zielplattform aktiviert.

TypeScript

Neu Visual Studio 2015 Update 3 enthält TypeScript 1.8.34. Ein Fehler aufgrund von ungenügendem Arbeitsspeicher bei einigen großen TypeScript-Projekten, die AngularJS verwenden, wurde behoben.

C# und Visual Basic

Neu Wir haben in die Reduzierung der Speicherbeanspruchung und die Verbesserung der Leistung der Codediagnose investiert. Dies reduziert einen Großteil der in früheren Versionen aufgrund ungenügenden Arbeitsspeichers ausgelösten Out-of-Memory-Abstürze. Wir haben die Leistung bei der Ausführung von Codediagnose für eine gesamte Projektmappe verbessert. Weitere Informationen zu Leistungsverbesserungen bei der Codediagnose finden Sie auf der Seite Gewusst wie: Aktivieren und Deaktivieren der Analyse gesamter Projektmappen für verwalteten Code auf MSDN.

Zu den weiteren Verbesserungen zählen die folgenden:

  • Eine Option zum Hinzufügen eines Verweises auf ein NuGet-Paket als schnelle Problembehebung:

plugin-byid

Sie können diese Option unter „Extras“ > „Optionen“ > „Text-Editor“ > „C#“ > „Erweitert“ unter „Using-Direktiven“:

„plugin-byid“ aktivieren.

  • Die Unterstützung für portable Klassenbibliotheken mit dem .NET-Plattformstandard als Zielplattform wurde verbessert.
  • Leistungsverbesserungen der C# GoTo-Implementierung und bei „Alle Verweise suchen“ wurden hinzugefügt. Sie können diese ausprobieren, indem Sie ein Objekt auswählen, mit der rechten Maustaste darauf klicken und es dann im Menü auswählen.
  • Wenn Sie eine Aktion "Alle korrigieren" auf "document/project/solution" anwenden, wird jetzt eine Statusleiste angezeigt.
  • Neu Verbesserte Leistung beim Neuladen von C#- und VB-Projekten in großen Projektmappen. Weitere Informationen und Tipps finden Sie unter Performance considerations for large solutions.

Team Explorer

Neu Mehrere Fehler in Team Explorer wurden behoben:

  • Der Inhalt einer Datei, die aus einem Git-Repository gelöscht wurde, kann nicht angezeigt werden.
  • Beim Anzeigen des Verlaufs einer Verzweigung sollte das Symbol „Zu untergeordnetem Element wechseln“ deaktiviert werden, wenn der neueste Commit den Fokus hält.
  • Wenn Sie Verzweigungen mit „Git.exe“ ändern, kann Visual Studio abstürzen oder in einem unbekannten Status wechseln.
  • Beim Anzeigen des Verlaufs einer Verzweigung in einem Git-Repository weist die Hervorhebung im Verlaufsdiagramm Störungen auf.
  • Beim Erstellen einer Verzweigung in Team Explorer führt die Tastenkombination ALT+B für „Verzweigung erstellen“ zu einem Konflikt mit dem Build-Menü.
  • In einer Situation mit einer hohen Speicherauslastung führt der Versuch, ein Objekt zu entpacken, das größer als der verfügbare Arbeitsspeicher ist, in Git zu dem Fehler „Objekt nicht gefunden – kein passendes ungebundenes Objekt vorhanden ()“ anstelle eines Fehlers aufgrund von ungenügendem Arbeitsspeicher.
  • Rechtschreibfehler in der Fehlermeldung „... Wenn Sie diese Projektmappe öffnen möchten, ...“.
  • Wenn Sie den Verlauf einer Verzweigung anzeigen und mit der rechten Maustaste auf den ersten Commit im Verlauf klicken, wird Cherry-Pick deaktiviert.
  • Wenn Sie eine Pull-Anforderung auf der Seite mit den Team Explorer-Verzweigungen erstellen, wird im Kontextmenü die aktuelle Verzweigung anstelle der ausgewählten Verzweigung verwendet.

Xamarin für Visual Studio

Neu Visual Studio 2015 Update 3 enthält jetzt Xamarin 4.1. Zusätzlich zu einer Reihe von Fehlerkorrekturen bietet diese Version Unterstützung für tvOS. Außerdem wurden die Unterstützung des Katalogs der iOS-Objekte und die XML-Bearbeitungsumgebung verbessert und Selektoren für SSL/TLS- und HttpClient-Implementierungen beim Erstellen von iOS-Apps hinzugefügt. Weitere Informationen finden Sie in den Versionshinweisen zu Xamarin.

Bekannte Probleme

Eine vollständige Beschreibung der bekannten Probleme in dieser Version finden Sie im folgenden MSDN-Artikel: Visual Studio 2015 Update 3 – Bekannte Probleme