Freigeben über


Versionshinweise zu Visual Studio Icon Visual Studio 2017, Version 15.8

Hinweis

Die unterstützte Version von Visual Studio 2017 ist Version 15.9.

Von Bedeutung

Dies ist nicht die neueste Version von Visual Studio. Um die neueste Version herunterzuladen, besuchen https://visualstudio.microsoft.com/downloads/ Sie bitte die Versionshinweise zu Visual Studio 2022.

Visual Studio-Blog

Der Visual Studio-Blog ist die offizielle Quelle für Produkterblicke aus dem Visual Studio Engineering Team. Ausführliche Informationen zu Visual Studio 2017 Version 15.8-Versionen finden Sie in den folgenden Beiträgen:

Visual Studio 2017, Version 15.8, Versionen

Von Bedeutung

Hinweise zu Sicherheitshinweisen in Visual Studio 2017, Version 15.8

Zusammenfassung wichtiger neuer Features in 15.8

Top-Probleme in 15.8 behoben

Dies sind die vom Kunden gemeldeten Probleme, die in 15.8 behoben wurden:

Sehen Sie sich alle vom Kunden gemeldeten Probleme an, die in Visual Studio 2017, Version 15.8 behoben wurden.

Das Entwickler-Communityportal


Details zu Neuigkeiten in 15.8

Symbol Visual Studio 2017, Version 15.8.0

veröffentlicht am 14. August 2018

Neue Features in 15.8

Install

Sie haben jetzt die Möglichkeit, alle Installationsdateien herunterzuladen, bevor Sie die Installation starten.

  • Um diese neue Option zu verwenden, wählen Sie die Option "Alle herunterladen, dann installieren" im Installationsprogramm (Abbildung 1) aus. Wir empfehlen diese Option, wenn Sie über eine langsamere Internetverbindung verfügen.
  • Die Standardoption bleibt "Beim Herunterladen installieren", die parallel heruntergeladen und installiert wird.
Otion herunterladen
(Abbildung 1) Downloadoption

Leistung

Diese Version enthält die folgenden Leistungsverbesserungen:

  • Die Verzweigung für C#-, VB- und C++-Projekte ist für große Lösungen viel schneller, da das Neuladen der Lösung nicht mehr erforderlich ist.
  • Wir haben die Zeit reduziert, um einen kleinen Satz von C#- und VB-Projekten in großen Lösungen von Minuten auf mehrere Sekunden zu entladen und neu zu laden.
  • Wir haben eine Option zum Deaktivieren des erneuten Öffnens von Dokumenten hinzugefügt, die in der vorherigen Sitzung geöffnet wurden, da das erneute Öffnen bestimmter Dateitypen oder Designer das Laden der Lösung verzögern kann.
    • Aktivieren Sie diese Option in "Extras > Options > Projects > Solutions > General".

Testleistung

Wir haben die Leistung erheblich verbessert, wenn einige Tests in einer großen Lösung mit mehreren Testprojekten ausgeführt werden. In unseren Laboren hat eine Lösung mit über 10.000 MSTests einen einzigen Test bis zu 82% schneller ausgeführt!

Verbesserung der Leistung von Visual Basic

Visual Basic bietet jetzt eine erhebliche Leistungsverbesserung bei Verwendung des Musters CInt(Fix(number)) zum Konvertieren von nicht ganzzahligen Typen in ganze Zahlen.

Leistungsprofilerstellung

Diese Version enthält die folgenden Leistungsprofilverbesserungen:

  • Wir haben die Funktion zum Starten der Profilerstellung in einem angehaltenen Zustand hinzugefügt:

    • Das CPU-Nutzungstool im Performance Profiler (ALT-F2) kann jetzt in einem angehaltenen Zustand gestartet werden (Abbildung 2). Dies kann nützlich sein, während sie auf ein Szenario warten, das einer CPU-Auslastungsuntersuchung würdig ist. Wenn die CPU-Auslastungssammlung beim Start deaktiviert ist, sammelt der Performance Profiler erst Daten zum Beispielstapel für die CPU-Auslastung, wenn sie spezifisch aktiviert ist. Dies führt dazu, dass weniger Daten gesammelt und analysiert werden, wodurch Ihre Leistungsuntersuchungen effizienter werden.

    • Um eine Sitzung mit deaktivierter CPU-Auslastungsbeispielsammlung zu starten, klicken Sie auf der Startseite des Performance Profiler auf das Zahnradsymbol neben der CPU-Auslastung . Deaktivieren Sie auf der Eigenschaftenseite " CPU-Auslastung" die Option "CPU-Profilerstellung aktivieren (Sampling)" , und klicken Sie auf "OK ", um die Einstellungen zu speichern.

      Einstellungsseite des CPU-Nutzungstools
      (Abbildung 2) EINSTELLUNGEN des CPU-Verwendungstools
    • Nachdem Sie die Zielanwendung gestartet haben (klicken Sie auf der Startseite des Performance Profiler auf " Start "), wird das Diagramm für die CPU-Auslastung (Abbildung 3) angezeigt, mit dem Sie die CPU-Profilerstellung steuern können. Wählen Sie zum Aktivieren der Cpu-Auslastungsstapeldatensammlung die Option "CPU-Profilerstellung aktivieren " in der Mitte der Ansicht aus, oder klicken Sie auf "CPU-Profil aufzeichnen" direkt unterhalb des Diagramms für die CPU-Auslastung. Sie können auf "CPU-Profil aufzeichnen" klicken, um die Beispieldatensammlung so oft wie möglich zu aktivieren/zu deaktivieren. Die Farbe des DIAGRAMMs zur CPU-Auslastung ändert sich, um anzugeben, ob die Beispielsammlung zu diesem Zeitpunkt aktiviert/deaktiviert ist.

      Überwachungsansicht des CPU-Nutzungstools
      (Abbildung 3) CPU-Auslastungsauslastungsdiagramm
  • Wir haben ein .NET Object Allocation Tracking Tool hinzugefügt:

    • Das .NET Object Allocation Tracking Tool verknüpft die Familie der Tools, die im Performance Profiler verfügbar sind. Wenn Sie dieses Tool für eine Performance Profiler-Sitzung aufrufen, wird die Sammlung einer Stapelablaufverfolgung für jede .NET-Objektzuweisung initiiert, die in der Zielanwendung auftritt. Diese Stapeldaten werden zusammen mit Objekttyp- und Größeninformationen analysiert, um Details zur Speicheraktivität Ihrer Anwendung anzuzeigen. Sie können die Zuordnungsmuster in Ihrem Code schnell ermitteln und Anomalien identifizieren. Darüber hinaus können Sie für Gc-Ereignisse (Garbage Collection) ganz einfach ermitteln, welche Objekte gesammelt und aufbewahrt wurden, und schnell Objekttypen identifizieren, die die Speicherauslastung der Anwendung dominieren.
    • Dies ist besonders hilfreich für API-Autoren, um Zuordnungen zu minimieren. Viele Anwendungen überlaufen die Puffergrenzwerte, die in der Diagnosedatensammlung involviert sind, aber kleine Testanwendungen, die die wichtigsten Szenarien einer API ausüben, können ziemlich gut diagnostiziert werden. Während die Testanwendung ausgeführt wird, zeigt der Performance Profiler ein Liniendiagramm von Live Objects (Anzahl) sowie ein Objektdelta (% Änderungsbalkendiagramm) an.
    • Um das .NET Object Allocation Tracking Tool zu verwenden, zeigen Sie die Startseite des Performance Profiler (Abbildung 4) an, wählen Sie ein Ziel für profil aus (das Standardziel ist das Startprojekt in der Lösung), überprüfen Sie die .NET-Objektzuweisungsnachverfolgung unter "Verfügbare Tools", und klicken Sie dann auf "Start".
    Startseite des Performance Profiler
    (Abbildung 4) Startseite des Performance Profiler

Leistungsprofilerstellung (CPU-Auslastung)

Diese Version enthält die folgenden Verbesserungen des CPU-Nutzungstools des Performance Profiler (verfügbar über ALT-F2):

  • In der Anrufstrukturansicht wird jetzt standardmäßig eine asynchrone Ausführung nach logischem Aufrufstapel angezeigt. Sie können dieses Verhalten deaktivieren, indem Sie die Option "Stitch Async Code " in der Dropdownliste "Filter" der Hauptansicht "CPU-Auslastung" deaktivieren.
  • Wir haben eine Modul-/Funktionsansicht hinzugefügt, in der Leistungsinformationen nach Modul (dll) und nach Funktion in einem Modul angezeigt werden. Sie können die Ansicht "Module/Funktionen" im Kontextmenü anzeigen, das verfügbar ist, wenn Sie eine Funktion in der Hauptansicht der CPU-Auslastung auswählen, oder über die Dropdownliste "Ansicht" in der Anrufstruktur oder in den Ansichten "Anrufer/Angerufene".
  • Die Instanzanzeige wurde dem CPU-Auslastungsdiagramm in der Hauptansicht des CPU-Nutzungstools hinzugefügt. Sie können die Instanzen anzeigen, wenn eine Funktion ausgeführt wird (z. B. im Stapel), indem Sie auf eine Funktion doppelklicken, die in einer der CPU-Auslastungsansichten aufgeführt ist.

Produktivität

Diese Version enthält die folgenden Produktivitätsverbesserungen:

  • Sie können zusätzliche Codebereinigungen mit "Dokument formatieren" (STRG+K, D oder STRG+E, D) für die C#-Entwicklung durchführen. Konfigurieren Sie die Bereinigung, indem Sie zu "Extras>Optionen>" im Text-Editor>C#>Codeformatierung>>allgemein wechseln.
  • Wir haben weitere Umgestaltungen und schnelle Aktionen mit STRG+ . oder ALT + EINGABETASTE hinzugefügt:
    • Invert If ermöglicht es Ihnen, Ihre Logik in if-else-Anweisungen umzukehren. Platzieren Sie den Cursor im if Schlüsselwort, um diese Umgestaltung auszulösen.
    • Mit dem Hinzufügen eines Parameters aus methodenaufrufite können Sie einer Methode einen Parameter hinzufügen, indem Sie einem Methodenaufruf ein Argument hinzufügen und Schnelle Aktionen und Umgestaltungen auslösen.
    • Entfernen Sie unnötige Klammern entfernt Klammern um binäre Operatoren, die nicht für die Kompilierung unerlässlich sind. Sie können diese Formatvorlagenregel über tools>Options>Text Editor>C#>Code Style>General oder .editorconfig konfigurieren:
      • dotnet_style_parentheses_in_arithmetic_binary_operators
      • dotnet_style_parentheses_in_relational_binary_operators
      • dotnet_style_parentheses_in_other_binary_operators
      • dotnet_style_parentheses_in_other_operators
    • Verwenden Sie ternäre Bedingungen in Zuweisungen und Rückgabeanweisungen können auch als Stilregel in Den>> konfiguriert werden... oder über .editorconfig:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Wir haben dem Fenster "Gehe zu allen " neue Befehle und Verbesserungen hinzugefügt:
    • Wechseln Sie zum Umschließen von Block (STRG+ ALT + UpArrow), sodass Sie schnell bis zum Anfang des umschließenden Codeblocks navigieren können.
    • Wechseln Sie zum nächsten/vorherigen Problem (Alt + PgUp/PgDn) ermöglicht es Ihnen, zum nächsten/vorherigen Problem zu springen (Fehler, Wellenlinie, Glühbirne).
    • Wechseln Sie zu "Mitglied" (STRG+T, M) ist jetzt standardmäßig auf die Datei festgelegt. Sie können die Standardeinstellung wieder in eine Lösung ändern, indem Sie den Bereich in das aktuelle Dokument umschalten (STRG+ALT+C).
  • Sie können nun Einfügepunkte und Auswahlen an mehreren, beliebigen Speicherorten in einer Datei mit mehrfacher Caretunterstützung erstellen. Auf diese Weise können Sie Text an mehreren Stellen gleichzeitig hinzufügen, bearbeiten oder löschen.
    • Einfügen von Carets mit STRG+ALT+ LeftMouseClick.
    • Fügen Sie eine Auswahl und ein Caret an der nächsten Position hinzu, die der aktuellen Auswahl mit UMSCHALT+ALT+Ins entspricht.
    • Eine vollständige Liste der Aktionen finden Sie unter "Mehrere Carets bearbeiten>".
  • Greifen Sie auf ein Kontextnavigationsmenü mit ALT +' zu.
  • Halten Sie Die Tastenbindung mit zwei neuen Tastaturprofilen konsistent: Visual Studio Code und ReSharper (Visual Studio). Sie finden diese Schemas unter "Extras Options >> Environment > Keyboard" und im oberen Dropdownmenü.

Fehlersuche

Diese Version enthält die folgenden Debugverbesserungen:

  • Wenn Mehrere Instanzen von Visual Studio 2017 installiert sind, können Sie jetzt auswählen, für welche Instanz Die Erweiterung beim Debuggen bereitgestellt werden soll (Abbildung 5). Auf diese Weise können Sie z. B. im Visual Studio-Veröffentlichungskanal beim Debuggen im Vorschaukanal entwickeln.

    Auswählen der Debuginstanz
    (Abbildung 5) Debuginstanz auswählen
  • Sie können den Snapshot-Debugger jetzt direkt auf der Seite "Zusammenfassung veröffentlichen" (Abbildung 6) anfügen.

    Momentaufnahmedebugger über die Seite
    (Abbildung 6) Anfügen eines Snapshotdebuggers aus der Veröffentlichungszusammenfassung
  • Wir unterstützen jetzt das Anzeigen verwalteter Aufgaben über das Aufgabenfenster beim Debuggen von Minidumps mit Heap.

Tools für Entwickler der universellen Windows-Plattform

Wir haben viele wichtige Verbesserungen am XAML-Designer für Projekte für die universelle Windows-Plattform mit einer Zielplattformversion des Windows 10 Fall Creators Update (Build 16299) oder höher vorgenommen. Zu diesen Verbesserungen gehören:

  • Sie können jetzt Sammlungen im Eigenschafteninspektor bearbeiten.
  • Der Designer ermöglicht nun die Bearbeitung von Vorlagen und Formatvorlagen, einschließlich der Definition der Definitionen für diese Entitäten in anderen Dokumenten.
  • Eigenschaften vom Typ IconElement (z. B. Icon in einem AppBarButton) verfügen jetzt über einen benutzerdefinierten Editor im Eigenschaftenprüfungstool, wodurch diese Eigenschaften einfacher festgelegt werden können.
  • Der Designer, Editor und "Bearbeiten" und "Weiter" sollten jetzt alle ordnungsgemäß mit "x:DefaultBindMode" funktionieren.
  • Die Visual State Manager-Oberfläche in Blend unterstützt jetzt AdaptiveTrigger.

F# 4.5- und F#-Tools für Visual Studio

Wir haben die F#-Sprachversion 4.5 mit dieser Version eingeführt. Dies entspricht auch der neuen 4.5.x-Familie von FSharp.Core (der F#-Kernbibliothek). Sie können die Spezifikationen für jede dieser Änderungen im F#RFC-Repository lesen. Es gibt auch viele Verbesserungen an F#-Tools für Visual Studio mit dieser Version.

F# 4.5

Hier sind einige der Highlights mit der F#-Sprachversion 4.5:

Span'T-Unterstützung<>

Wir haben features implementiert Span<'T> und damit verbunden, dass der effektive Verbrauch und die Produktion von APIs mithilfe Spanvon , Memoryund ref-ähnlichen Konstrukten mit F# möglich sind. Zu diesen Features gehören:

  • Neuer voidptr Typ.
  • Neue NativePtr.ofVoidPtr und NativePtr.toVoidPtr Funktionen in FSharp.Core.
  • Neue Typen inref<'T> und outref<'T>, die schreibgeschützte Byrefs bzw. schreibgeschützte Byrefs sind. Dies entspricht in ref und out ref in C#.
  • Die Fähigkeit, Strukturen zu erzeugen ByRefLike (z Span . B. und ReadOnlySpan).
  • Die Fähigkeit, Strukturen zu erzeugen IsReadOnly .
  • Implizite Ableitung von byref- und inref-rückgaben von Methoden.
  • Die Möglichkeit, Erweiterungsmitglieder zu erzeugen, auf byref/inref/outref.

Dieser Featuresatz behebt einen Fehler im anfänglichen Entwurf von byref-returns in F# 4.1, wobei Funktionen, Methoden und Eigenschaften, die byref's zurückgeben, nicht implizit den Rückgabewert ableiten. Wir nehmen diese Änderung vor, um das Feature in Einklang mit der Behandlung von C# ref-Rückgaben zu bringen. Eine Fehlermeldung wird verwendet, wenn eine Typanmerkung angibt, dass nun eine implizite Ableitung eines ref- Rückgabewerts verwendet wird.

Darüber hinaus behebt dieser Featuresatz auch einen Fehler im F#-Compiler, bei dem "Evil struct replacement" möglich war; Das Aufrufen einer Methode für eine F#-Struktur könnte z. B. die tatsächliche Struktur ersetzen, die durch eine andere aufgerufen wurde. Der this Parameter für eine Struktur wird nun als ein inref<MyStruct>Fehler betrachtet, der vorschlägt, ein änderbares Feld hinzuzufügen, wenn Sie die Struktur ändern möchten.

Weitere Informationen zu span und refähnlichen Konstrukten in RFC finden Sie für diesen Featuresatz.

Streichholz! in Berechnungsausdrücken

F# 4.5 führt match!ein neues Schlüsselwort für die Verwendung in Berechnungsausdrücken ein, das vollständig von John Wostenberg beigetragen hat. Dieser syntaktische Zucker entspricht einem let! Aufschluss match über das Ergebnis. Weitere Informationen finden Sie im RFC für match!.

Entspannen Sie die Notwendigkeit, eine Neufassung mit yield Sequenz-, Listen- und Arrayausdrücken zu erstellen.

F# 4.5 entspannt jetzt einige Fälle, in denen ein Upcast beim Verwenden yield erforderlich war, um einen Untertyp in einen Supertyp zu konvertieren. Diese Einschränkung war bereits für diese Ausdrücke seit F# 3.1 nichtyielderforderlich, sodass dies mit vorhandenem Verhalten konsistenter wird. Weitere Informationen finden Sie in RFC für dieses Feature.

Zulassen des Einzugs in Listen- und Arrayklammern

F# 4.5 entspannt jetzt die Einzugsregel für Listen- und Arrayklammern, die erforderlich sind, dass sie in einem Bereich vorwärts eingezogen werden müssen, wenn sie in einer eigenen Zeile stehen. Diese vorherige Anforderung war immer ziemlich verwirrend, insbesondere für Anfänger zu F#. Darüber hinaus ist sie für F#-Sequenzausdrücke nicht erforderlich. Dadurch werden Array- und Listenausdrücke in den gleichen konsistenten Zustand wie Sequenzausdrücke versetzt. Weitere Informationen finden Sie in RFC für dieses Feature.

Aufzählungsfälle, die als öffentlich ausgegeben werden

F# 4.5 emittiert jetzt Enumerationsfälle als öffentlich unter allen Umständen, um sich an die Art und Art und Art der Ausgabe von Enumerationsfällen zu orientieren. Dies erleichtert auch die Analyse von Protokollen aus F#-Code, bei denen der Wert anstelle des Bezeichnungsnamens ausgegeben wurde. Weitere Informationen finden Sie in RFC für dieses Feature.

F#-Compilerverbesserungen

Verbesserungen am F#-Compiler zusätzlich zu den zuvor erwähnten Sprachfeatures sind in F# 4.5 enthalten. Dazu gehören:

  • Wir haben die Compilerleistung verbessert, indem bis zu 2.2% aller Zuordnungen im F#-Compiler entfernt werden (unter verschiedenen Szenarien).
  • Es wurde ein Fehler behoben, der zu einer AccessViolatioNException Verwendung yield! mit strukturbasierten Enumerationen führt.
  • Es ist jetzt möglich, von FSharpFunc wieder zu erben.
  • Tail-Aufrufe sind standardmäßig für Debugbuilds von F# für .NET Core deaktiviert. Sie sind für die Veröffentlichung aktiviert, sodass sie dem F#-Desktopcompiler entsprechen.
  • F#-Referenznormalisierung wurde behoben, damit Sie transitive Assemblyverweise steuern können, die in eine Ausgabedatei geschrieben wurden. Auf diese Weise können Sie das Äquivalent der Assemblyumleitung auf .NET Core ausführen.
  • Es wurde ein Fehler behoben, bei dem die Fehlermeldung, die beim Versuch, dynamische Aufrufe für Inlinefunktionen zu verwenden, ignoriert wurde. Die Fehlermeldung wird nun weitergegeben.
  • F# berücksichtigt jetzt das WarningsNotAsErrors Flag, das Sie in Projektdateien festlegen können.
  • Wenn Verzweigungen einer Mustervergleich nicht die gleiche Fehlermeldungstypbedingung zurückgeben, wurde aktualisiert, um von Isaac Abraham zu benutzerfreundlicher zu werden.
  • Ein interner Fehlerfehler, wenn eine Kompilierungsschnittstellenimplementierung, bei der keine überladene Methodenimplementierung fehlt, von Steffen Forkmann behoben wurde.
  • Einige unnötige Arraykopien in der Lexingphase des Compilers wurden von Gauthier Segay entfernt.
  • Unvollständige Musterüberstimmungen für F#-Enumerationen erzeugen jetzt eine detaillierte Warnung, die ein Beispiel für einen Fall gibt, der nicht abgedeckt ist, von John Wostenberg beigetragen.
  • '#nowarn "2003" wird nun von Matthias Diitrich respektiert.
  • Ein Fehler, bei dem die Verwendung von C#-Erweiterungsmethoden bei der F#-Überladungsauflösung fehlschlagen konnte, wurde von Steffen Forkmann behoben.
  • Ein interner QueueList-Datenstrukturfehler wurde von Steffen Forkmann behoben.
  • Verschiedene kleinere Optimierungen und Codebereinigungsbemühungen wurden von Steffen Forkmann, Eugene Auduchinok und Ncave beigetragen.

F# Core Library 4.5.x

Die folgenden Ergänzungen zur F#-Kernbibliothek sind jetzt verfügbar:

  • Wichtige Arbeit wurde unternommen, um Stapelüberwachungen für async { } Berechnungsausdrücke zu verbessern. Sie sollten nun in der Lage sein, Benutzercode und Benutzerzeilennummern in Stapelablaufverfolgungen anzuzeigen. Weitere Informationen finden Sie in RFC für dieses Feature.
  • FuncConvert.FromFuncund FuncConvert.FromAction APIs, die Typen und System.Func Überladungen verwendenSystem.Action, um bei der Interoperabilität mit C# zu helfen. Weitere Informationen finden Sie in RFC für dieses Feature.
  • ValueOption ist ein neuer Typ verfügbar, der die erste in einer Reihe zukünftiger Features ist, die letztendlich auf eine bessere Leistung für Active Patterns abzielen. Weitere Informationen finden Sie in RFC für dieses Feature.
  • TryGetValue ist jetzt ein neues Mitglied im F#-Zuordnungstyp. Weitere Informationen finden Sie in RFC für dieses Feature.
  • Wir haben die hohe CPU-Auslastung beim ersten Aufruf von MailboxProcessor.TryReceive.
  • Vergleich für bool jetzt verwendet schnellen generischen Vergleich, beigetragen von Vasily Kirichenko.
  • Der Zusammenfassungstext wurde Array.allPairs aktualisiert, um korrekt zu sein, von Patrick McDonald beigetragen

Verbesserungen beim F#-Tooling

Diese Version enthält erhebliche Verbesserungen in den F#-Tools, z. B. Leistungsverbesserungen und einige neue Editorfeatures. Wie immer, mit einer großen Anzahl von Beiträgen aus der F#-Open Source-Community. Hier sind die Highlights:

  • Wir haben die IntelliSense-Leistung für .NET SDK-Stil-Projekte aller Formen verbessert, einschließlich derEr, die multiadressieren.
  • Ein gemeinschaftlicher Versuch zur Analyse und Verbesserung der IntelliSense-Leistung für sehr große Dateien wurde von Vasily Kirichenko, Steffen Forkmann und Gauthier Segay beigetragen. IntelliSense in sehr großen Dateien (10k+ Codezeilen) ist jetzt ungefähr doppelt so schnell.
  • Die Warnung für ein veraltetes FSharp.Core (trotz der Installation des Pakets) ist in .NET SDK-Stil-Projekten nicht mehr vorhanden.
  • Die QuickInfo zur Beschreibung, die xml-Dokumentation für ein Element anzeigt, nachdem . in IntelliSense nach 10 Sekunden kein Zeitüberschreitung mehr erfolgt ist.
  • Ein Fehler, bei dem Sie haltepunkte in Objektkonstruktorargumenten nicht festlegen konnten, wurde behoben.
  • Ein Fehler, bei dem ein umbenanntes Symbol dupliziert wurde, wenn es sich um einen generischen Parameter handelt, wurde behoben.
  • Vorlagen für .NET Framework (klassische F#-Vorlagen) nutzen jetzt FSharp.Core aus einem NuGet-Paket, um an .NET SDK F#-Vorlagen auszurichten.
  • Die automatische Vervollständigung der Transaktionsklammer ist jetzt für ()Klammerpaare , [], , {}und [||][<>] geschweifte Klammern verfügbar. Wir haben dies in Zusammenarbeit mit Gibran Rosa getan.
  • Sie können jetzt mit STRG+Klicken auf ein F#-Symbol zu definition wechseln. Die Einstellungen für diese Geste werden auch im Fenster "Extras-Optionen>" beachtet.
  • Die IntelliSense-Leistungs-UI wurde geändert, um die Konfiguration veralteter Typüberprüfungsinformationen für verschiedene IDE-Features zu ermöglichen. Erläuterungen für jede Option sind jetzt in QuickInfos für die Einstellungen enthalten.
  • Geschweifte Übereinstimmung hervorhebung jetzt korrekt hebt geschweifte Klammern hervor, die in Zusammenarbeit mit Vasily Kirichenko abgeschlossen wurden.
  • Zur Definition navigiert jetzt richtig, wenn ein Typ rekursiv definiert wird, beigetragen von Vasily Kirichenko.
  • Ein Fehler, bei dem ein automatisch importierter Namespace nicht geöffnet wurde, als der Anfang einer Datei leer war, wurde von Vasily Kirichenko behoben.
  • Ein Fehler, bei dem Bezeichner, die printf Punkte enthielten, falsch eingefärbt wurden, wurde von Vasily Kirichenko behoben.
  • Ein Fehler, bei dem alle geöffneten Elemente in einem rekursiven Modul als nicht verwendet wurden, wurde von Vasily Kirichenko behoben.
  • Die Leistung des Nicht verwendeten Open Analyzers wurde von Vasily Kirichenko erheblich verbessert.
  • AutoVervollständigen für Attribute schlägt jetzt nur Optionen vor, die tatsächlich Attribute sind, die von Vasily Kirichenko beigetragen wurden.
  • Signaturhilfe-QuickInfos werden jetzt für statische Parameter des Typanbieters auf der Konstruktoraufrufwebsite generiert, die von Vasily Kirichenko beigetragen haben.
  • Ein Fehler, bei dem Werttypen, die als Maßeinheiten verwendet werden, als Bezugstypen von Vasily Kirichenko korrigiert wurden.
  • Ein Fehler, bei dem die semantische Farbgebung für einige Dateien beim Scrollen von Vasily Kirichenko behoben wurde.
  • Es gibt nun eine experimentelle CodeLens-Implementierung, die von Victor Peter Rouven Müller beigetragen wurde. Sie können es in den Optionen > Text-Editor > F# > Code Lens aktivieren.
  • Ein Fehler, bei dem der F#-Compilerdienst die Modulnamen in der XML-Dokumentation falsch elidieren würde, wurde von Sebastian Urban behoben.
  • Code, der Dictionary mit ContainsKey und nachfolgenden Item Aufrufen verwendet wird, wurde von TryGetValue verwendet.
  • Jakob Majoka trug auch dazu bei, eine andere API für QuickInfos zu verwenden.

Verbesserungen bei Infrastruktur, Verpackung und Open Source

Wir haben die folgenden Verbesserungen an Infrastruktur, Verpackung und unserem Open Source-Beitragserlebnis vorgenommen:

  • Der mit Visual Studio verteilte F#-Compiler wird nicht mehr als Singleton am F#-Compiler-SDK-Speicherort installiert. Es ist jetzt vollständig nebeneinander mit Visual Studio, was bedeutet, dass parallele Installationen von Visual Studio endlich wirklich parallel F#-Tools und -Sprachfunktionen haben werden.
  • Das FSharp.Core NuGet-Paket ist jetzt signiert.
  • DIE ETW-Protokollierung wurde den F#-Tools und -Compilern hinzugefügt.
  • Die sehr großen control.fs/control.fsi Dateien in FSharp.Core wurden inasync.fs/async.fsi , event.fs/event.fsieventmodule.fs/eventmodule.fsi,mailbox.fs/mailbox.fsi und .observable.fs/observable.fsi
  • Wir haben .NET SDK-Stilversionen unserer Stresstestartefakte für Projektleistung hinzugefügt.
  • Wir haben Newtonsoft.json aus unserer Codebasis entfernt, und Sie haben jetzt ein weniger Paket für OSS-Mitwirkende heruntergeladen.
  • Wir verwenden jetzt die neuesten Versionen von System.Collections.Immutable und System.Reflection.Metadata.

Verbesserungen bei C++-Konformität und Toolset

Diese Version enthält die folgenden C++-Konformitäts- und Toolsetverbesserungen:

  • Ein neuer, experimenteller, tokenbasierter Präprozessor, der den C++11-Standards (einschließlich C99-Präprozessorfeatures) entspricht, aktiviert mit dem Switch "/experimental:preprocessor". Dies wird mit Makro _MSVC_TRADITIONALgesteuert, das bei Verwendung des herkömmlichen Präprozessors und 0 bei Verwendung der neuen experimentellen Standards konformen Präprozessor 1 definiert wird.
  • Die Visual Studio Developer-Eingabeaufforderung unterstützt das Aktivieren der Visual C++ Spectre Variant 1 reduzierten Laufzeiten (-vcvars_spectre_libs = spectre). Weitere Informationen zu Spectre-Gegenmaßnahmen finden Sie im Visual C++-Teamblog.
  • Zwei neue Ergänzungen des SSA Optimizer konzentrierten sich auf die moderne C++-Codegenerierung: redundante Speicher eliminierung und Faltung redundanter Filialen.
  • Optimierte Speicherzuordnung der E/A-Leistung im Linker, um Verknüpfungszeiten zu reduzieren.

Plattformübergreifende C++-Entwicklung

Wir haben für diese Version folgendes hinzugefügt, verbessert und der plattformübergreifenden C++-Entwicklung hinzugefügt:

  • Die Vorlage "Neues Element>" zum Generieren einer CLANG-Formatdatei wurde hinzugefügt, die auf die für ClangFormat in den Tools-Optionen> angegebene Codierungskonventionfolgt. Wenn die Visual Studio-Konvention ausgewählt ist, versucht die generierte Datei, die aktuelle Visual Studio-Formatierungskonfiguration des Benutzers aus den Tools-Optionen >abzugleichen.
  • Die ausgelieferte clang-format.exe Version wurde auf 6.0.0 aktualisiert.
  • Vorlagen zum Vereinfachen des Hinzufügens von Konfigurationen zu CppProperties.json.
  • Es wurden Vorlagen hinzugefügt, um das Hinzufügen von Konfigurationen zu CMakeSettings.json(Abbildung 7) zu vereinfachen.
Konfigurationsvorlagen für CMake
(Abbildung 7) Konfigurationsvorlagen für CMake

C++-Produktivität

Wir haben die folgenden Verbesserungen und Verbesserungen an der C++-Produktivität vorgenommen:

  • QuickInfos für C++-QuickInfos für Makros zeigen nun, was sie erweitern, anstatt nur ihre Definition. Dies ist besonders nützlich für komplexe Makros, die auf andere Makros verweisen, da sie klarstellt, durch welchen Makrobezeichner der Präprozessor ersetzt wird.
  • Es wurde eine neue Schnellkorrektur-Glühbirne hinzugefügt, um einfache Makros in constexpr als neues Tool zum Modernisieren von Code zu konvertieren.
  • IntelliSense für Vorlagen bietet Ihnen weitere Details zu Vorlagenargumenten, um IntelliSense im Vorlagentext vollständig zu nutzen (Abbildung 8).
IntelliSense-Vorlage
(Abbildung 8) IntelliSense-Vorlage
  • Wir arbeiten daran, unsere Codeanalyseerfahrung zu aktualisieren. Sie können jetzt die neuen in Bearbeitung befindlichen Features unter Tools>Options>Text Editor>C++>Experimental>Code Analysis aktivieren. Die Codeanalyse kann im Hintergrund ausgeführt werden, wenn Dateien geöffnet oder gespeichert werden, und Ergebnisse werden in der Fehlerliste und als grüne Wellenzeichen im Editor angezeigt (Abbildung 9).
In-Editor-Codeanalyse
(Abbildung 9) Codeanalyse im Editor

Verbesserungen beim C++-Debuggen

Wir haben die folgenden Debuggingverbesserungen vorgenommen:

  • Just My Code ermöglicht Es Ihnen jetzt, Code aus System- oder C++-Bibliotheken von Drittanbietern zu durchlaufen, zusätzlich zum Reduzieren dieser Aufrufe im Aufrufstapelfenster. Sie können dieses Verhalten für alle C++-Bibliotheken steuern, wenn Ihr Code mit /JMC kompiliert wird und die Pfade von Nichtbenutzerbibliotheken in einer NATJMC-Datei angegeben werden. Wenn die Systembibliothek beim Einstieg in den Benutzercode aufruft, überspringt der Debugger den gesamten Systemcode und hält an der ersten Zeile des Benutzercoderückrufs (Abbildung 10) an.
Nur mein Code
(Abbildung 10) Nur mein Code
  • Datenhaltepunkte können jetzt innerhalb der Fenster "Watch", "Quickwatch", "Autos" und "Locals" festgelegt werden, sodass Sie unterbrechen können, wenn sich ein im Arbeitsspeicher gespeicherter Wert in nur wenigen, kurzen Klicks ändert.
  • Mit dem Quelllink können Sie Informationen über den ursprünglichen Quellcode einer ausführbaren Datei oder Bibliothek während der Kompilierung in den PDB einbetten.
  • Beim Debuggen bleibt das Konsolenfenster jetzt standardmäßig geöffnet, wenn das Programm die Ausführung beendet (ähnlich wie das Ausführen des Programms ohne den Debugger). Dieses Verhalten kann zurückgeschaltet werden, um die Konsole automatisch in den Tools-Optionen >> debugging > General zu schließen.

Verbesserungen bei JavaScript und TypeScript

TypeScript 3.0

Visual Studio 2017, Version 15.8, enthält standardmäßig TypeScript 3.0. Weitere Informationen zu dieser Version finden Sie in der TypeScript 3.0-Versionsankündigung.

Verbesserte Vue.js-Unterstützung

Die Unterstützung für die Vue.js-Bibliothek wurde verbessert, insbesondere die Unterstützung für VUE-Dateien, auch als "einzelne Dateikomponenten" bezeichnet. Dies bietet Verbesserungen beim Bearbeiten von Skriptblöcken innerhalb von VUE-Dateien, einschließlich der Unterstützung für Skriptblöcke, die in TypeScript über das lang="ts" Attribut für das Skriptelement erstellt wurden. (Hinweis: Ein Buildprozess mit WebPack oder ähnlich muss verwendet werden, um die VUE-Dateien in die ZUR Laufzeit benötigten HTML- und JS-Dateien zu konvertieren. Weitere Informationen finden Sie auf der Seite "Einzeldateikomponenten ".

Wenn die Node.js Workload installiert ist, gibt es nun im Dialogfeld "Neues Projekt" unter "JavaScript/Node.js" oder "TypeScript/Node.js" Vorlagen "Basic Vue.js Webanwendung". Die folgende Abbildung zeigt ein Beispiel zum Bearbeiten von TypeScript-Code innerhalb eines Skriptblocks in einer VUE-Datei (Abbildung 11).

Bearbeiten einer VUE-Datei
(Abbildung 11) Bearbeiten von VUE-Dateien

ESLint-Verbesserungen

Wir haben ESLint-Unterstützung für diese Version erneut implementiert. ESLint bietet die folgenden Verbesserungen und Verbesserungen:

  • Anstatt nur gespeicherte Dateien zu bearbeiten, liniert Visual Studio nun auch JavaScript-Dateien während der Bearbeitung.
  • Ergebnisse können für alle JS-Dateien in Ihrem Projekt gemeldet werden, nicht nur für geöffnete Dateien; Wenn Teile Ihres Projekts vorhanden sind, die Nicht liniert werden sollen, kann nun eine ESLINTIGNore-Datei verwendet werden, um Verzeichnisse und Dateien anzugeben, die ignoriert werden sollen.
  • ESLint wurde standardmäßig aktualisiert, um ESLint 4 zu verwenden, aber wenn Ihr Projekt über eine lokale Installation von ESLint verfügt, wird stattdessen diese Version verwendet.

ESLint kann global in Visual Studio deaktiviert werden, indem die Einstellung "ESLint aktivieren" in der Einstellung **Tools > Options > Text Editor > Javascript/Typescript > Linting ** (Abbildung 12) deaktiviert wird.

ESLint-Optionen
(Abbildung 12) ESLint-Optionen

Verbesserungen beim Öffnen von Ordnern für Node.js

Es gibt zahlreiche Verbesserungen beim Arbeiten mit JavaScript und TypeScript im Szenario "Ordner öffnen", wenn die "Node.js Workload" installiert ist. Beispiel: Verwalten von NPM-Paketen, Erstellen von TypeScript, Starten und Debuggen mit Node.exe, Ausführen von NPM-Skripts und Ausführen von Komponententests.

Weitere Informationen finden Sie unter Entwickeln von JavaScript- und TypeScript-Code in Visual Studio ohne Lösungen oder Projekte} .

Verbesserungen der Editorleistung

In früheren Versionen wurden alle JavaScript- und TypeScript-Sprachdienstvorgänge von einem einzigen Node.js-Prozess gewartet. Dies kann zu Verzögerungen bei Editoren führen, wenn Befehle, die sich auf die Benutzereingabe auswirken (z. B. die automatische Formatierung nach einer Neuen Zeile), gesendet wurden, während ein potenziell langwieriges Vorgang bereits ausgeführt wurde (z. B. das Analysieren von Code für Fehler). Um dies zu vermeiden, wird jetzt ein separater Prozess für die Vorgänge verwendet, die sich auf die Bearbeitung am meisten auswirken. Dieser Prozess ist bei Systemressourcen wesentlich leichter als der vorhandene Sprachdienstprozess. Wenn Sie den neuen Prozess jedoch deaktivieren möchten, aktivieren Sie das Kontrollkästchen Dedizierten Syntaxprozess deaktivieren in tools Options >> Text Editor > JavaScript/TypeScript > Language Service.

Visual Studio Webtools

Der Bibliotheks-Manager ist ein neues Feature, das in Visual Studio 2017 enthalten ist. Es hilft Ihnen, clientseitige Bibliotheken in Ihren Webprojekten zu verwalten.

Containertools

Wir haben für ASP.NET Core-Webprojekte eine neue Docker-Containeroberfläche für ein einzelnes Projekt hinzugefügt. Dies ergänzt die vorhandenen Docker Compose-basierten Containertools und bietet eine einfachere, einfachere Möglichkeit zum Erstellen, Debuggen und Erstellen von Docker-Containern direkt aus Visual Studio.

Sie können beim Erstellen des Projekts Docker-Unterstützung hinzufügen (Abbildung 13):

Aktivieren der Docker-Unterstützung
(Abbildung 13) Aktivieren der Docker-Unterstützung

Alternativ können Sie die Docker-Unterstützung für ein vorhandenes Projekt über das Kontextmenü des Projekts im Projektmappen-Explorer (Abbildung 14) aktivieren. Anschließend erstellt Visual Studio eine einzelne Dockerfile-Datei im Projekt. Sie haben die Möglichkeit, entweder Windows oder Linux auszuwählen.

Hinzufügen der Docker-Unterstützung
(Abbildung 14) Hinzufügen der Docker-Unterstützung

Visual Studio fügt außerdem ein Debuggerstartprofil (Abbildung 15) für Docker hinzu, sodass das Projekt während der Ausführung in einem Container gedebuggt werden kann.

Docker Launch Profile
(Abbildung 15) Docker Launch Profile

Wenn Sie über eine Lösung mit mehreren Docker-Projekten verfügen, wird standardmäßig nur ein Container ausgeführt, wenn Sie die Lösung starten möchten. Wenn Sie mehrere Container gleichzeitig ausführen möchten, können Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe klicken und dann "Startprojekte festlegen " und dann "Mehrere Startprojekte" auswählen und dann die Dropdownliste " Aktion " auf "Start" oder " Starten" festlegen, ohne dass sie für alle Projekte debuggen möchten, die Sie ausführen möchten.

Sobald Ihr containerisiertes Projekt wie gewünscht ausgeführt wird, können Sie mit der rechten Maustaste auf das Projekt klicken und "Docker Image erstellen" auswählen, um ein Image lokal zu erstellen, wenn Sie bereit sind, an Azure Container Registry oder DockerHub zu übertragen.

Sie können auch die vorhandene Docker Compose-basierte Funktionalität zu einem ASP.NET Core-Webprojekt über die neue Container Orchestrator-Supportoption(Abbildung 16) hinzufügen. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das ASP.NET Core-Webprojekt, wählen Sie "Container Orchestrator-Unterstützung hinzufügen>" aus, und wählen Sie dann im Dropdownmenü "Docker Verfassen" aus.

Hinzufügen der Container Orchestrator-Unterstützung
(Abbildung 16) Hinzufügen der Orchestrierungsunterstützung

Verbesserungen beim Veröffentlichen

Diese Version enthält die folgenden Veröffentlichungsverbesserungen:

  • Beim Veröffentlichen eines Docker-Containers in einer Containerregistrierung können Sie jetzt das Tag für das Image anpassen. Sie können entweder manuell ein Tag hinzufügen (Standard ist "neueste") oder ein automatisch generiertes Tag verwenden, um sicherzustellen, dass jedes Tag eindeutig ist.
  • Beim Erstellen eines neuen Azure App Service können Sie application Insights auch so konfigurieren, dass Telemetrie automatisch erfasst wird. Wenn Sie eine Region auswählen, in der auch Application Insights enthalten ist, ist sie standardmäßig aktiviert. Wenn Sie eine Region auswählen, die noch keine Application Insights enthält, können Sie manuell eine andere Region für Ihre Application Insights-Ressource aus der Dropdownliste angeben.
  • Beim Veröffentlichen von Azure Functions-Projekten können Sie die Veröffentlichung über das neue Feature "Ausführen von Zip " auswählen.

Visual Studio-Tools für Xamarin

Diese Version enthält die folgenden Updates für Xamarin:

  • Wir haben Unterstützung für Xcode 9.4 hinzugefügt.
  • Wenn Sie ein neues Xamarin.Forms-Projekt erstellen, ist jetzt .NET Standard die Standardoption für die Codefreigabe. Die Option "Freigegebenes Projekt" ist weiterhin verfügbar.
  • Wir haben Verbesserungen des inkrementellen Android-Builds hinzugefügt. Xamarin.Android verwendet Dateien, die im Zwischenausgabeverzeichnis generiert werden, um inkrementelle Builds zu erzielen, die schneller als vollständige Builds sind. Wenn Sie zuvor das Zielframework Ihres Projekts geändert haben, würden die Dateien ungültig und führen zu einem vollständigen Build für die nächste Ausführung. In dieser Version behalten wir nun die Dateien in Framework-Ordnern bei, sodass Sie zwischen verschiedenen Zielframeworks wechseln und dennoch von inkrementellen Builds profitieren können. Durch das Bereinigen des Projekts können Sie den von den beibehaltenen Dateien verwendeten Speicherplatz freigeben.
  • Wir haben mindestens Unterstützung für Xamarin.Mac-Bindungsprojekte in Visual Studio 2017 hinzugefügt. Dadurch kann Visual Studio Xamarin.Mac-Bindungsprojekte wie unterstützt laden und erkennen. Sie können auch Xamarin.Mac-Bindungsprojekte erstellen. Der Buildprozess wird jedoch lokal ausgeführt, ohne die systemeigene Mac-Toolkette zu verwenden, sodass die generierten IL-Assemblys nicht zum Ausführen oder Debuggen in Apps verwendet werden können.

Hyper-V Android-Emulatorunterstützung

Diese Version fügt Unterstützung für den Google Android-Emulator hinzu, der mit Hyper-V kompatibel ist , wenn sie auf dem Windows 10 April 2018 Update (Abbildung 17) ausgeführt wird. Auf diese Weise können Sie den Android-Emulator von Google parallel zu anderen Hyper-V basierten Technologien verwenden, einschließlich Hyper-V virtuellen Computern, Docker-Tools, dem HoloLens-Emulator und mehr. Entwickler mobiler Apps, die Hyper-V verwenden, haben jetzt Zugriff auf einen schnellen Android-Emulator, der immer die neuesten Android-APIs unterstützt, funktioniert mit Google Play Services sofort und unterstützt alle Features des Android-Emulators, einschließlich Kamera, Geolocation und Schnellstart.

Screenshot des Google Android-Emulators und des HoloLens-Emulators, der gleichzeitig ausgeführt wird.
(Abbildung 17) Google Android Emulator und HoloLens Emulator

Xamarin.Android Designer

Wir haben erhebliche Verbesserungen an der Designererfahrung für Xamarin.Android vorgenommen. Highlights:

  • Es wurde ein Geteilter Ansichts-Editor eingeführt, mit dem Sie Ihre Layouts gleichzeitig erstellen, bearbeiten und in der Vorschau anzeigen können (Abbildung 18).
Screenshot des Xamarin.Android Split-View-Editors.
(Abbildung 18) Xamarin.Android Split-view Editor
  • Verbesserte IntelliSense-Benutzeroberfläche und Zuverlässigkeit von benutzerdefinierten Steuerelementen.
  • Beispieldatenunterstützung für vom System bereitgestellte Werte.

Xamarin.Forms Previewer

Der Xamarin.Forms Previewer verfügt jetzt über Toolboxunterstützung bei Verwendung von Xamarin.Forms, Version 3.1.0.583944 oder höher. Xamarin.Forms-Steuerelemente werden in der Toolbox angezeigt, sodass sie für neue Benutzer des Toolkits auffindbar sind. Sie können ein Steuerelement auch auf den XAML-Code-Editor ziehen und ablegen, um das Steuerelement der Seite hinzuzufügen. Der Xamarin.Forms Previewer ist jetzt Teil des XAML-Editors. Sie können es mit dem Erweiterungssymbol am Rand des Editorbereichs öffnen und schließen.

Python

Diese Version fügt die folgenden Verbesserungen für Python-Entwickler hinzu:

  • Python IntelliSense verwendet jetzt Typdefinitionen , um umfangreichere Ergebnisse für Bibliotheken bereitzustellen, in denen autovervollständigungen nicht durch statische Analysen abgeleitet werden können.
  • Der experimentelle Debugger, der zuerst in den Preview-Versionen von 15.7 angekündigt wurde, ist jetzt das Standarddebugmodul, das für Python verwendet wird und ein schnelleres und zuverlässigeres Debuggen für Python-Code bietet.
  • Wir haben Unterstützung für Python 3.7 hinzugefügt, einschließlich Korrekturen zum Aktivieren von Debuganfügungs-, Profilerstellungs- und Mixed-Mode-Debugging-Features (cross-language).
  • Weitere Informationen zu den oben genannten Features finden Sie in unserem Python-Blogbeitrag in Visual Studio 2017, Version 15.8 .

Migrieren der lokalen Azure-Funktionseinstellungen

Das Dialogfeld "Verwaltete Anwendungseinstellungen", das auf der Zusammenfassungsseite zum Veröffentlichen verfügbar ist, zeigt jetzt Werte aus Ihrer local.settings.json Datei an und ermöglicht ihnen das Migrieren von Werten zu Ihrer in Azure gehosteten Azure Function-Remote-App.

Connected Services

Sie können jetzt die kontinuierliche Bereitstellung für Azure-Funktionen direkt aus Visual Studio 2017 für Lösungen mit Azure-Funktionsprojekten konfigurieren.

Testen der Explorer-Verbesserung

Der Test-Explorer zeigt nun einen informativeren Zusammenfassungsbereich des Teststatus an (unterer Bereich des Test-Explorers), wenn eine der Gruppierungen in der Hierarchieansicht ausgewählt ist. Im Bereich wird nun angezeigt, wie viele Tests fehlgeschlagen, bestanden oder nicht in dieser Gruppierung ausgeführt werden.

Neue Erweiterbarkeitsfeatures

Language Server-Protokoll

Visual Studio verfügt jetzt über systemeigene Unterstützung für das Language Server-Protokoll. Erweiterungsautoren können Erweiterungen erstellen , die mit vorhandenen Sprachservern kommunizieren, um visual Studio zusätzliche Sprachunterstützung hinzuzufügen. Erweiterungsbenutzer können diese Erweiterungen installieren, um mit der Verwendung ihrer bevorzugten Sprache in Visual Studio wie Rust zu beginnen.

AsyncPackage-Vorlage

Erweiterungsautoren können jetzt Elementvorlagen verwenden, um AsyncPackages zu erstellen, um die Leistung ihrer Erweiterung zu optimieren. Weitere Informationen zu AsyncPackages.

Erweiterungspakete

Teilen Sie ganz einfach Ihre bevorzugten Erweiterungen, oder richten Sie eine neue Installation von Visual Studio mit allen Erweiterungen ein, indem Sie ein Erweiterungspaket verwenden. Erweiterungspakete ermöglichen es Ihnen, eine Liste von Erweiterungen zu erstellen, sie in einer Erweiterung zu packen und sie schnell zu verwenden, um diese Erweiterungen in Massen zu installieren.

Veröffentlichung der Befehlszeilenerweiterung

Veröffentlichen Sie Ihre Erweiterungen mithilfe der Befehlszeile auf dem Visual Studio Marketplace.

.NET Core SDK 2.1.400

Visual Studio 2017, Version 15.8, enthält .NET Core SDK 2.1.400. Zu den neuen SDK-Features gehören:

  • NUnit-Vorlagen hinzugefügt
  • Unterstützung für signierte globale Tools hinzugefügt
  • Verbesserter Hilfetext zur besseren Übersichtlichkeit

32 Probleme wurden auf der .NET Core CLI geschlossen.
20 Probleme wurden im .NET Core SDK geschlossen.

Quellcodeverwaltung

Für .NET Core-Projekte werden dateien, die über den Datei-Explorer direkt zum Projekt hinzugefügt werden, nun die richtigen Git- und TFS-Nachverfolgungssymbole im Projektmappen-Explorer anzeigen, ohne die Projektmappe neu laden zu müssen.

.NET Testadapter-Erweiterung

Der .NET-Testadapter weist die folgende unterbrechungs- und veraltete Änderung auf:The .NET Test Adapter has the following breaking change and deprecation:

  • Unterbrechungsänderung: Alle Testprojekte müssen die NuGet-Referenz des .NET-Testadapters in der csproj enthalten. Andernfalls wird diese Testausgabe im Projekt angezeigt, wenn die Ermittlung durch eine Testadaptererweiterung nach einem Build gestartet wird oder der Benutzer versucht, die ausgewählten Tests auszuführen:
    • Das Testprojekt {<Vollständiger Pfad des Testprojekts>} verweist nicht auf einen .NET NuGet-Adapter. Die Ermittlung oder Ausführung von Tests funktioniert für dieses Projekt möglicherweise nicht. Es wird empfohlen, in jedem Testprojekt in der Projektmappe auf NuGet-Testadapter zu verweisen.
  • .NET-Testframeworks haben ihre Adapter in NuGet-Paketen veröffentlicht und sich von Visual Studio-Erweiterungen entfernt. Die Unterstützung für .NET-Testadapter, die über Erweiterungen bereitgestellt werden, sind veraltet, werden jedoch weiterhin unterstützt. Dies bedeutet, dass zwei neue Optionen im Tools-Optionstest >>verfügbar sind.
    • Mit der ersten Option kann Visual Studio nur die Testadapter verwenden, die im Testassemblyordner gefunden werden (aufgefüllt durch den NuGet-Verweis des Testadapters) oder wie in der Runsettings-Datei angegeben.
    • Mit der zweiten Option kann Visual Studio das alte Verhalten "ausweichen" und nach Adaptererweiterungen für Testadapter für Projekte suchen, für die kein NuGet-Verweis auf den Testadapter vorhanden ist. Beide Optionen werden standardmäßig überprüft, sodass sich in dieser Version kein Standardverhalten ändert.
  • Hinweis: Non-.NET Testadapter sind bei dieser Änderung nicht betroffen.

ASP.NET .NET Framework Secrets-Support

Für ASP.NET.NET Framework-Projekte, die auf .NET Framework 4.7.1 oder höher abzielen, können Sie jetzt geheime Schlüssel öffnen und speichern, die Sie in Ihrem Quellcode nicht wünschen, in usersecrets.xml, indem Sie mit der rechten Maustaste auf das Projekt klicken und "Verwaltete Benutzergeheimnisse" auswählen.

Verbessern ASP.NET .NET Framework-Leistung

Wenn das referenzierte .NET-Compilerpaket in einem ASP.NET .NET Framework-Projekt veraltet ist, fordert Visual Studio Sie auf, das Paket zu aktualisieren, wenn Sie das Projekt öffnen, um die Buildleistung zu verbessern.

.NET Framework 4.7.2

Visual Studio 2017, Version 15.8, bietet jetzt die .NET Framework 4.7.2-Entwicklungstools für alle unterstützten Plattformen mit enthaltener 4.7.2-Laufzeit an. Das .NET Framework 4.7.2 bietet mehrere neue Features und Verbesserungen sowie zahlreiche Zuverlässigkeits-, Stabilitäts-, Sicherheits- und Leistungsfixes.

Weitere Informationen zu .NET Framework 4.7.2 finden Sie in den folgenden Artikeln:

Paketladevorgang verzögern

Visual Studio verzögert jetzt das Laden asynchroner Pakete, die für das automatische Laden konfiguriert sind, bis die Visual Studio-IDE vollständig gestartet wurde und die Lösung geladen wurde. Diese Änderung wirkt sich nicht auf synchron automatisch geladene Pakete aus. Benutzer können sich das Aufgabenstatuscenter in der unteren linken Ecke der Statusleiste ansehen, um den Fortschritt zu überwachen. Erweiterungsautoren, die asyncpackages erstellen, sollten ihre Erweiterung testen. Weitere Informationen finden Sie unter Verbessern der Reaktionsfähigkeit kritischer Szenarien durch Aktualisieren des automatischen Ladeverhaltens für Erweiterungen.


---

Symbol Hinweise zu Sicherheitshinweisen in Visual Studio 2017, Version 15.8

Visual Studio 2017, Version 15.8.7 Service Release– veröffentlicht am 10. Oktober 2018

CVE-2018-8292 Sicherheitsrisiko bei der Veröffentlichung von Informationen in .NET Core

Eine Sicherheitsanfälligkeit bei der Umgehung von Sicherheitsfeatures ist in .NET Core vorhanden, wenn HTTP-Authentifizierungsinformationen versehentlich in einer ausgehenden Anforderung verfügbar gemacht werden, die auf eine HTTP-Umleitung stößt. Ein Angreifer, der diese Sicherheitsanfälligkeit erfolgreich ausgenutzt hat, könnte die Informationen verwenden, um die Webanwendung weiter zu kompromittieren. Das Sicherheitsupdate behebt die Sicherheitsanfälligkeit, indem korrigiert wird, wie .NET Core-Anwendungen HTTP-Umleitungen behandeln.

Visual Studio 2017, Version 15.8.4 Service Release– veröffentlicht am 11. September 2018

CVE-2018-8409 .NET Core Denial Of Service Vulnerability

Eine Denial-of-Service-Sicherheitsanfälligkeit ist in .NET Core 2.1 vorhanden, wenn System.IO.Pipelines Anforderungen nicht ordnungsgemäß verarbeitet. Ein Angreifer, der diese Sicherheitsanfälligkeit erfolgreich ausgenutzt hat, könnte zu einem Denial of Service gegen eine Anwendung führen, die System.IO.Pipelines nutzt. Die Sicherheitsanfälligkeit kann remote ohne Authentifizierung ausgenutzt werden. Ein nicht authentifizierter Remote-Angreifer könnte diese Sicherheitsanfälligkeit ausnutzen, indem speziell gestaltete Anforderungen an die Anwendung bereitgestellt werden.

CVE-2018-8409 ASP.NET Sicherheitsanfälligkeit bezüglich denial-of-Service

In ASP.NET Core 2.1 ist eine Denial-of-Service-Sicherheitsanfälligkeit vorhanden, die Webanforderungen nicht ordnungsgemäß verarbeitet. Ein Angreifer, der diese Sicherheitsanfälligkeit erfolgreich ausgenutzt hat, könnte einen Dienstverweigerungsstatus gegen eine ASP.NET Core-Webanwendung verursachen. Die Sicherheitsanfälligkeit kann remote ohne Authentifizierung ausgenutzt werden. Ein nicht authentifizierter Remote-Angreifer könnte diese Sicherheitsanfälligkeit ausnutzen, indem er eine speziell gestaltete Webanforderungen für die ASP.NET Core-Anwendung bereitstellt.

Visual Studio 2017, Version 15.8– veröffentlicht am 14. August 2018

CVE-2018-0952 Sicherheitsanfälligkeit beim Diagnosehub-Standardsammler zur Erhöhung von Berechtigungen

In einem Visual Studio-Dienst ist eine Sicherheitslücke zur Erhöhung von Berechtigungen vorhanden, was beim Schreiben von Dateien zu Systemrechten durch einen Benutzer ohne Administrator führen kann. Ein Angreifer, der dies genutzt hat, könnte Dateien als System schreiben, während nur Zugriff auf Benutzerebene vorhanden ist. Dieses Sicherheitsupdate behebt dieses Problem durch Identität des aktuellen Benutzers, um den Zugriff auf den Dateispeicherort zu überprüfen.

Visual Studio 2017, Version 15.8 Preview 4 – veröffentlicht am 10. Juli 2018

CVE-2018-8172: Sicherheitsrisiko durch Remotecodeausführung in Visual Studio

Ein Sicherheitsrisiko bei der Remotecodeausführung kann zu Missbrauch des Computers eines Benutzers führen, indem ein speziell entwickeltes Projekt oder eine Ressourcendatei geöffnet wird. Das Sicherheitsupdate befasst sich mit diesem Sicherheitsrisiko, indem korrigiert wird, wie Visual Studio das Quellmarkup einer Datei überprüft.

CVE-2018-8260 .NET Framework – Sicherheitsanfälligkeit in Remotecodeausführung

In .NET-Software ist eine Sicherheitslücke zur Remotecodeausführung vorhanden, die zur Ausbeutung des Computers eines Benutzers führen kann, indem Angreifern das Ausführen von beliebigem Code im Kontext des aktuellen Benutzers ermöglichen. Das Sicherheitsupdate befasst sich mit diesem Sicherheitsrisiko, indem korrigiert wird, wie .NET das Quellmarkup einer Datei überprüft.

CVE-2018-8232: Sicherheitsrisiko durch Manipulation des Microsoft Macro Assemblers für .NET

Manipulation von Sicherheitsrisiken, die in Zusammenhang mit dem nicht ordnungsgemäßen Überprüfen von Code durch Microsoft Macro Assembler stehen. Das Sicherheitsupdate beseitigt dieses Sicherheitsrisiko, indem sichergestellt wird, dass Microsoft Macro Assembler die Codelogik ordnungsgemäß überprüft.

CVE-2018-8171: Sicherheitsrisiko durch Umgehung des ASP.NET Core-Sicherheitsfeatures

Die Manipulation durch Umgehung des ASP.NET Core-Sicherheitsfeatures tritt auf, wenn die Anzahl der falschen Anmeldeversuche nicht überprüft wird. Dies kann dazu führen, dass ein Angreifer unendlich viele Authentifizierungsversuche durchführen kann. Das Update beseitigt das Sicherheitsrisiko, indem die Anzahl der falschen Anmeldeversuche überprüft wird.

Visual Studio 2017, Version 15.8 Preview 3 – veröffentlicht am 26. Juni 2018

CVE-2018-11235: Microsoft-Sicherheitsempfehlung für Git-Sicherheitsrisiko

Auch ein von der Git-Gemeinschaft offengelegtes Sicherheitsrisiko in Git wurde behoben. Die Sicherheitslücke kann zur Ausführung beliebigen Codes führen, wenn ein Benutzer ein bösartiges Repository klont.

Visual Studio 2017, Version 15.8 Preview 1 – veröffentlicht am 08. Mai 2018

CVE-2018-0765 Microsoft Security Advisory for .NET Core Denial of Service Vulnerability

  • Microsoft veröffentlicht diese Sicherheitsempfehlung, um Informationen zu einer Sicherheitsanfälligkeit in .NET Core und .NET Native Version 2.0 bereitzustellen. Diese Empfehlung enthält auch Anleitungen dazu, was Entwickler tun können, um ihre Anwendungen zu aktualisieren, um diese Sicherheitsanfälligkeit zu entfernen.
  • Microsoft ist sich einer Denial-of-Service-Sicherheitsanfälligkeit bewusst, die vorhanden ist, wenn .NET Framework und .NET Core XML-Dokumente nicht ordnungsgemäß verarbeiten. Ein Angreifer, der diese Sicherheitsanfälligkeit erfolgreich ausgenutzt hat, kann einen Dienstverweigerungsstatus gegen eine .NET Framework-, .NET Core- oder .NET Native-Anwendung verursachen.
  • Das Update behebt die Sicherheitsanfälligkeit, indem korrigiert wird, wie .NET Framework, .NET Core und .NET native Anwendungen die XML-Dokumentverarbeitung verarbeiten.
  • Wenn Es sich bei Ihrer Anwendung um eine ASP.NET Core-Anwendung handelt, sollten Entwickler auch auf ASP.NET Core 2.0.8 aktualisieren.

Symbol Visual Studio 2017, Version 15.8.1

veröffentlicht am 17. August 2018

Top-Probleme in 15.8.1 behoben

Dies sind die Probleme, die in 15.8.1 behandelt werden:

  • Ein Problem wurde behoben, bei dem Visual Studio unerwartet geschlossen wurde, wenn ein Browserfenster beim Debuggen eines Webprojekts geschlossen wurde.

Symbol Visual Studio 2017, Version 15.8.2

veröffentlicht am 28. August 2018

Top-Probleme in 15.8.2 behoben

Dies sind die vom Kunden gemeldeten Probleme in 15.8.2:


Symbol Visual Studio 2017, Version 15.8.3

veröffentlicht am 6. September 2018

Top-Probleme in 15.8.3 behoben

Dies sind die vom Kunden gemeldeten Probleme, die in 15.8.3 behoben wurden:


Symbol Visual Studio 2017, Version 15.8.4

veröffentlicht am 11. September 2018

Top-Probleme in 15.8.4 behoben

Dies sind die vom Kunden gemeldeten Probleme, die in 15.8.4 behoben wurden:

Sicherheitswarnhinweise


Symbol Visual Studio 2017, Version 15.8.5

veröffentlicht am 20. September 2018

Zusammenfassung der Neuerungen in 15.8.5

  • Visual Studio Tools for Xamarin unterstützt jetzt Xcode 10.

Top-Probleme in 15.8.5 behoben

Dies sind die vom Kunden gemeldeten Probleme, die in 15.8.5 behoben wurden:

Details zu Neuigkeiten in 15.8.5

Visual Studio-Tools für Xamarin

Visual Studio Tools for Xamarin unterstützt jetzt Xcode 10, mit dem Sie Apps für iOS 12, tvOS 12 und watchOS 5 erstellen und debuggen können. Erfahren Sie , wie Sie sich auf iOS 12 und unsere Einführung in iOS 12 vorbereiten können, um weitere Details zu den verfügbaren neuen Features zu erhalten.


Symbol Visual Studio 2017, Version 15.8.6

veröffentlicht am 02. Oktober 2018

Zusammenfassung der Neuerungen in 15.8.6

Top-Probleme in 15.8.6 behoben

Dies sind die vom Kunden gemeldeten Probleme, die in 15.8.6 behoben wurden:

Details zu Neuigkeiten in 15.8.6

Neueste Windows 10 SDK für Entwickler der universellen Windows-Plattform

Das neueste Windows 10 SDK (Build 17763) ist jetzt als optionale Komponente für die Entwicklungsarbeitslast der universellen Windows-Plattform verfügbar. Sie können dieses SDK zur Workload hinzufügen, indem Sie das Kontrollkästchen Windows 10 SDK (10.0.17763.0) aktivieren.


Symbol Visual Studio 2017, Version 15.8.7

veröffentlicht am 10. Oktober 2018

Neuerungen in 15.8.7

Azure DevOps

Visual Studio Team Services ist jetzt Azure DevOps! Dieses neue Branding wird im Team Explorer und in Verweisen in Visual Studio angezeigt.

Sicherheitswarnhinweise

CVE-2018-8292 Sicherheitsrisiko bei der Veröffentlichung von Informationen in .NET Core


Symbol Visual Studio 2017, Version 15.8.8

veröffentlicht am 24. Oktober 2018

Top-Probleme in 15.8.8 behoben

Dies sind die vom Kunden gemeldeten Probleme, die in 15.8.8 behoben wurden:


Symbol Visual Studio 2017, Version 15.8.9

veröffentlicht am 2. November 2018

Top-Probleme in 15.8.9 behoben

Dies sind die vom Kunden gemeldeten Probleme in 15.8.9:


Bekannte Probleme

Alle vorhandenen bekannten Probleme und verfügbaren Problemumgehungen in Visual Studio 2017, Version 15.8, anzeigen.

Bekannte Probleme mit Visual Studio 2017


Visual Studio 2017: Versionshinweise-Historie

Weitere Informationen zu früheren Versionen von Visual Studio 2017 finden Sie auf der Seite Visual Studio 2017 – Versionsverlauf.