Vorschaulogo Versionshinweise für Visual Studio 2022 17.0 Preview


Entwicklercommunity | Visual Studio2022-Roadmap | Systemvoraussetzungen | Kompatibilität | Verteilbarer Code | Lizenzbedingungen | Blogs | Bekannte Probleme im aktuellen Release | Neuerungen in der Visual Studio-Dokumentation


Wichtig

Diese Version befindet sich nicht in der endgültigen Phase und ist nicht für die Verwendung auf Produktionscomputern oder zur Erstellung von Produktionscode vorgesehen. Anweisungen zum Installieren und Aktualisieren von Visual Studio 2022 finden Sie in dieser Dokumentation zum Aktualisieren von Visual Studio 2022 auf das aktuelle Release.

Download Community Button Download Professional Button Download Enterprise Button


Neuerungen in Visual Studio 2022 v17.0 Vorschau

Vorschaureleases von Visual Studio 2022 v17.0

Visual Studio 2022-Blog

Im Visual Studio 2022-Blog finden Sie alle wichtigen Informationen zu Produkten direkt vom Visual Studio-Engineeringteam. In den folgenden Beiträgen finden Sie ausführliche Informationen zu den Visual Studio 2022-Releases:


17.0.0-pre.4.1 Visual Studio 2022, Version 17.0, Preview 4.1 NewReleaseButton

Veröffentlicht: 20. September 2021

Zusammenfassung der Probleme, die in diesem Release von Visual Studio 2022 Version 17.0, Preview 4.1, gelöst wurden

  • Beim erneuten Laden von Änderungen an CSHTML- und RAZOR-Dateien werden Taghilfsprogramme und Komponenten unterbrochen.

Als wichtig bewertete Probleme aus der Entwicklercommunity

Weitere Informationen dazu finden Sie in unserer vollständigen Liste der Fehlerbehebungen für die Entwicklercommunity in diesem Release.


17.0.0 vor Version 4.0 Visual Studio 2022 Version 17.0 Preview 4

Veröffentlicht: 14. September 2021

Zusammenfassung der Neuerungen in diesem Release von Visual Studio 2022, Version 17.0, Preview 4

Erweiterbarkeit

  • APIs wurden aus Microsoft.VisualStudio.Language.Client-Assemblys entfernt

Programmiersprachen

  • C#10

C++

  • Unterstützung für libfuzzer unter dem Schalter -fsanitize=fuzzer. Weitere Details finden Sie in der Dokumentation.
  • Hot Reload für C++ unterstützt jetzt CMake- und OpenFolder-Projekte.
  • Das Flag /scanDependencies für die Ausgabe von C++20-Modulabhängigkeiten für CMake-Projekte wurde implementiert, wie in P1689r3 beschrieben. Dies ist ein Schritt hin zur Unterstützung der Entwicklung modulbasierter Projekte mit CMake, und wir arbeiten daran, diese Unterstützung in späteren Versionen zu vervollständigen.
  • Wir haben die Erkennung von NULL-Zeigerdereferenzierung in unseren Codeanalysetools verbessert.
  • Wir haben die in Visual Studio enthaltene Version von CMake auf Version 3.21 aktualisiert. Details zu den verfügbaren Funktionen finden Sie in den Versionshinweisen zu CMake 3.21.
  • Das MSVC-Toolset verwendet jetzt standardmäßig SHA-256-Quellhashing n Debugdatensätzen. Zuvor verwendete das Toolset standardmäßig MD5 für das Quellhashing.
  • Die Workload „Spieleentwicklung mit C++“ installiert jetzt die neueste Unreal Engine mit Unterstützung für Visual Studio 2022.

.NET-Produktivität

  • Synchronisieren von Namespaces, sodass sie mit Ihrer Ordnerstruktur aus dem Projektmappen-Explorer übereinstimmen
  • Konfigurieren der Hintergrundcodeanalyse im Projektmappen-Explorer

.NET-Hot Reload

  • Verbesserungen der Benutzeroberfläche (neue Schaltfläche mit Optionen), Anwenden von Änderungen beim Speichern und Einstellungen
  • Unterstützung für Hot Reload .NET MAUI-Apps (iOS, Android und WinUI)
  • Verbesserungen für ASP.NET-Szenarien
  • Es werden jetzt mehr Änderungen unterstützt

Neuladen von XAML im laufenden Betrieb

  • Verbesserte Unterstützung für XAML Hot Reload für .NET MAUI-Apps
  • Verbesserte Unterstützung für die gleichzeitige Verwendung von XAML und .NET-Hot Reload in derselben Sitzung für WPF- und WinUI-Apps

XAML-Livevorschau

  • Unterstützung für .NET MAUI & Xamarin.Forms-Apps hinzugefügt (Android-Emulator)
  • Unterstützung für WinUI 3- und UWP-Apps hinzugefügt

Testtools

  • Im Test-Explorer anzeigen
  • Updates für die Unterstützung von Webauslastungstests und Test der codierten Benutzeroberfläche

JavaScript/TypeScript

  • Wir haben einen neuen JavaScript-/TypeScript-Projekttyp veröffentlicht, der eigenständige JavaScript-/TypeScript-Projekte mit zusätzlichen Tools erstellt.
  • NPM-GUI ist verfügbar, sodass Sie jetzt NPM-Module auf die gleiche Weise herunterladen können wie NuGet-Pakete

Debuggen und Diagnose

  • Wir haben einen neuen Typ Haltepunkt namens Abhängiger Haltepunkt veröffentlicht, mit dem Sie einen Haltepunkt so konfigurieren können, dass er nur aktiviert wird, wenn zuerst ein anderer Haltepunkt ausgelöst wird.
  • Wir haben dem Knoten „External Sources“ weitere Updates hinzugefügt. Sie können das Modul nun unter dem Unterknoten „Module ohne Quellen“ sehen und die Symbole im Projektmappen-Explorer selbst laden.

Zusammenfassung der Probleme, die in diesem Release von Visual Studio 2022, Version 17.0, Preview 4, angegangen wurden

  • Ein Installationspfad für .NET 6-MAUI-Workloads wurde hinzugefügt.
  • Stellt sicher, dass die ATL-Zeichenfolgeninitialisierung während der Initialisierung statischer Variablen in der Standard-AppDomain erfolgt.
  • Feature zur Quellzuordnung des Releasepakets, das den Kunden erweiterte Kontrolle über ihre Software-Lieferkette gibt. Verbesserte Sicherheitsrisiken, Löschungen und kombinierte Meldungen in der QuickInfo für das Warnsymbol auf der installierten Registerkarte.

Als wichtig bewertete Probleme aus der Entwicklercommunity

Weitere Informationen dazu finden Sie in unserer vollständigen Liste der Fehlerbehebungen für die Entwicklercommunity in diesem Release.

Details zu den Neuerungen in diesem Release von Visual Studio 2022, Version 17.0, Preview 4

Erweiterbarkeit

Die folgenden APIs werden aus Microsoft.VisualStudio.Language.Client-Assemblys entfernt:

  1. Eigenschaft ILanguageClientInitializationInfo.Result
  2. Veraltete Schnittstellen der mittleren Ebene:
    • ILanguageClientCompletionProvider
    • ILanguageClientDidChangeConfigurationProvider
    • ILanguageClientDidChangeProvider
    • ILanguageClientDidCloseProvider
    • ILanguageClientDidOpenProvider
    • ILanguageClientExecuteCommandProvider
    • ILanguageClientWorkspaceSymbolProvider

Programmiersprachen

C# 10

  • Record structs und with Ausdrücke für structs (record struct Point(int X, int Y);, var newPoint = point with { X = 100 };).
  • Globale using-Anweisungen: Durch global using-Anweisungen kann die Wiederholung der gleichen using-Anweisungen in vielen Dateien in Ihrem Programm vermieden werden.
  • Verbesserte definitive Zuweisung: Die Analyse von definitiver Zuweisung und NULL-Werten weist eine verbesserte Handhabung gängiger Muster wie dictionary?.TryGetValue(key, out value) == true auf.
  • Konstante interpolierte Zeichenfolgen: Interpolierte Zeichenfolgen, die aus Konstanten bestehen, sind selbst Konstanten.
  • Erweiterte Eigenschaftenmuster: Eigenschaftenmuster ermöglichen den Zugriff auf geschachtelte Member (if (e is MethodCallExpression { Method.Name: "MethodName" })).
  • Versiegelter Datensatz ToString: Ein Datensatz kann einen Basisdatensatz mit einem versiegelten ToString erben.
  • Inkrementelle Quellgeneratoren: Verbessern Sie die Quellgenerierungserfahrung in großen Projekten, indem Sie die Quellgenerierungspipeline aufbrechen und Zwischenergebnisse zwischenspeichern.
  • Gemischte Dekonstruktionen: Dekonstruktionszuweisungen und Dekonstruktionsdeklarationen können kombiniert werden ((existingLocal, var declaredLocal) = expression).
  • AsyncMethodBuilder auf Methodenebene: Der zum Kompilieren einer async-Methode verwendete AsyncMethodBuilder kann lokal außer Kraft gesetzt werden.
  • #line span-Anweisung: Ermöglicht Quellgeneratoren wie Razor eine detailgenaue Steuerung der Zeilenzuordnung mit #line-Anweisungen, die die Zielspanne angeben (#line (startLine, startChar) - (endLine, endChar) charOffset "fileName").
  • Lambdaverbesserungen: Attribute und Rückgabetypen sind für Lambdas zulässig. Lambdas und Methodengruppen haben einen natürlichen Delegattyp (var f = short () => 1;).
  • Interpolierte Zeichenfolgenhandler: Interpolierte Zeichenfolgenhandlertypen ermöglichen eine effiziente Formatierung interpolierter Zeichenfolgen in Zuweisungen und Aufrufen.
  • Namespaces im Dateibereich: Dateien mit einem einzelnen Namespace benötigen keine zusätzlichen geschweiften Klammern oder Einzug (namespace X.Y.Z;).
  • Parameterlose Strukturkonstruktoren: Unterstützung von parameterlosen Konstruktoren und Instanzfeldinitialisierern für Strukturtypen.
  • CallerArgumentExpression: Dieses Attribut ermöglicht das Erfassen der Ausdrücke, die als Zeichenfolgen an eine Methode übergeben werden.

Noch mehr Details sind unter C# language feature status (Status von C#-Sprachfeatures) und Breaking Changes verfügbar.

.NET-Produktivität

Das Refactoring für Namespacesynchronisierung ist jetzt im Kontextmenü (Rechtsklick) eines Projekts oder Ordners im Projektmappen-Explorer verfügbar, sodass Sie Namespaces problemlos synchronisieren können, damit sie mit Ihrer Ordnerstruktur übereinstimmen.

Synchronisieren von Namespaces aus dem Projektmappen-Explorer

Die Konfiguration der Codeanalyse im Hintergrund ist jetzt im Kontextmenü (rechter Mausklick) des Projektmappen-Explorers verfügbar. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektmappenknoten, und wählen Sie Analysieren und Code bereinigen aus. Wählen Sie als Nächstes Analysebereich festlegen aus, um den Bereich für die Codeanalyse im Hintergrund zu konfigurieren.

.NET Hot Reload

In diesem Release verbessern wir die Hot Reload-Benutzeroberfläche weiter, einschließlich Unterstützung für weitere .NET Frameworks und Laufzeitszenarien, weitere unterstützte Bearbeitungen und Verbesserungen der Benutzeroberfläche.

Verbesserte Benutzererfahrung

Die Hot Reload-Benutzeroberfläche für .NET- wie C++-Entwickler in Visual Studio weist jetzt eine verbesserte Symbolleistenschaltfläche mit mehr Funktionalität und ein neues Panel für Einstellungen auf.

Neue Hot Reload-Schaltfläche in Visual Studio 2022 Preview 4 mit Anwendung neu starten, Hot Reload beim Speichern der Datei und einfachem Zugriff auf die Einstellungen

  • Neue Hot Reload Schaltfläche: Zu dieser neuen Schaltfläche gehört ein neues Symbol, und der Befehl wird von „Codeänderungen anwenden“ in „Hot Reload“ umbenannt.
  • Einfaches Neustarten von Anwendungen: Sie können Ihre aktuell ausgeführte Anwendung jetzt problemlos neu starten, wenn eine nicht unterstützte Bearbeitung (Rude Edit) durch eine Neuerstellung angewendet werden muss, unabhängig davon, ob Sie Ihre App mit dem Debugger oder ohne den Debugger gestartet haben. Dies kann etwa bei einer gültigen .NET-Änderung passieren, wenn Hot Reload das Update zur Laufzeit nicht ohne die Neuerstellung unterstützt.
  • Hot Reload beim Speichern: Bisher konnten Sie Hot Reload-Änderungen beim Speichern nur in ASP.NET anwenden. Mit diesem Release ist es nun möglich, Hot Reload für jeden Projekttyp zu konfigurieren, in dem Hot Reload mit der neuen Opt-In-Einstellung „Hot Reload beim Speichern der Datei“ unterstützt wird. Wenn diese Option aktiviert ist, wenden alle Projekttypen Änderungen beim Speichern an.
  • Einfacher Zugriff auf Einstellungen: In dieser Version haben wir auch ein Panel mit Einstellungen für Hot Reload hinzugefügt, um Ihnen mehr Kontrolle zu bieten, wann Hot Reload aktiviert/deaktiviert ist. Sie können diese Einstellungen in Visual Studio „Optionen > .NET/C++ Hot Reload“ oder über das Dropdownmenü der Hot Reload-Schaltflächen erreichen, indem Sie auf „Einstellungen“ klicken.

Unterstützte Plattformen (.NET MAUI)

In diesem Release ist es jetzt möglich, die .NET-Benutzeroberfläche von Hot Reload mit Ihren .NET MAUI-Apps zu verwenden. Dieses Feature funktioniert, wenn Sie Ihre .NET MAUI-App mithilfe des Visual Studio-Debuggers als WinUI-, .NET 6-iOS-/tvOS- oder .NET 6-Android-App ausführen und dabei in einer Debugkonfiguration mit aktiviertem Interpreter (Standardeinstellung in neuen Vorlagen) arbeiten. Dieses Feature funktioniert sowohl für .NET MAUI als auch für .NET MAUI Blazor-Apps.

Bekannte Probleme und Einschränkungen

  • In Android- und iOS/tvOS-Szenarien mit der Runtime Mono können nur Methodenkörper bearbeitet und Änderungen an diesen Methoden vorgenommen werden. In .NET 6 betrifft diese Einschränkung jede Plattform, wenn Mono die Runtime darstellt, und bei Verwendung der CoreCLR-Runtime wird eine größere Anzahl von Bearbeitungen unterstützt (Beispiel: .NET MAUI-App, die als WinUI 3-App ausgeführt wird).
  • Bei .NET MAUI Blazor-Apps aktualisiert Hot Reload die Ansicht noch nicht automatisch, und die automatische CSS-Synchronisierung ist noch nicht verfügbar. An diesen bekannten Problemen wird für zukünftige Releases gearbeitet.

Verbesserte Unterstützung für ASP.NET-Szenarien

In diesem Release unterstützen wir jetzt zusätzliche Funktionen für ASP.NET-Entwickler, die an Projekttypen wie ASP.NET Core und Blazor arbeiten. Zu den Verbesserungen gehören die Folgenden:

  • Automatische CSS-Synchronisierung: CSS-Dateien können jetzt geändert werden, während die App ausgeführt wird, und die Änderungen werden sofort während der Eingabe auf die ausgeführte App angewendet.
  • CSHTML: Das Bearbeiten einer Razor CSHTML-Datei unterstützt jetzt viele weitere Bearbeitungstypen.
  • Browseraktualisierung: Wenn Sie eine Razor-Datei bearbeiten, werden die Änderungen in Ihrem Webbrowser beim Debuggen jetzt automatisch aktualisiert. Dies war zuvor nur verfügbar, wenn die App ohne den Debugger gestartet wurde.

Hinweis: Es gibt ein bekanntes Problem, das Toolfehler verursacht und die Funktionalität der App stört, wenn Änderungen an Razor-Dateien (CSHTML, RAZOR) mithilfe von Hot Reload vorgenommen werden. Wir arbeiten daran, dieses Problem in Kürze zu beheben. Sie können dieses Problem umgehen, indem Sie einen Neustart der App ausführen, um Razor-Änderungen anzuwenden.

Unterstützte Bearbeitungen (.NET)

Es ist jetzt möglich, Code zu bearbeiten, der eines der neuen C# 10-Features verwendet, z. B. globale using-Anweisungen, Namespaces im Dateibereich, verbesserte Lambdas und parameterlose Strukturkonstruktoren. Darüber hinaus ist es jetzt auch möglich, Methoden und lokale Funktionsparameter umzubenennen.

XAML Hot Reload

Verbesserte Unterstützung für XAML Hot Reload für .NET MAUI-Apps

In diesem Release setzen wir die Verbesserung der Unterstützung für XAML Hot Reload beim Ausführen von .NET MAUI Android-, iOS- und WinUI-Apps aus den neuen Einzelprojektvorlagen fort. In diesem Release sind jetzt die folgenden Bearbeitungstypen möglich:

  • Ändern dynamischer und statischer Ressourcen
  • Ändern der Reihenfolge der Elemente in den Rastern
  • Ändern des Rasters in ein StackPanel
  • Erstellen und Zuweisen neuer Elemente

Hinweis: Während NET MAUI in Richtung auf seine allgemeine Verfügbarkeit fortschreitet, arbeitet das XAML Hot Reload-Team daran, interne Probleme der Plattform zu erkennen und zu beheben, um sicherzustellen, dass die Features von XAML Hot Reload zuverlässig funktionieren. Derzeit gibt es Aspekte des XAML Hot Reload-Mechanismus, die nicht ordnungsgemäß angewendet werden, und wir nehmen nach wie vor bei jedem Release Verbesserungen vor. Wir bitten Sie, uns VS-Feedback zu allem zu senden, was aus Ihrer Sicht nicht gut funktioniert, da dies uns sehr hilft, ein Qualitätsprodukt zu entwickeln.

Verbesserte Unterstützung für die gemeinsame Verwendung von XAML und .NET Hot Reload:

Mit der Einführung von .NET Hot Reload nehmen wir im Lauf der Zeit eine Reihe von Verbesserungen vor, um eine möglichst reibungslose Benutzererfahrung zu ermöglichen, wenn Technologien von XAML wie auch von .NET Hot Reload zusammen in derselben Debugsitzung verwendet werden.

In diesem Release haben wir die folgenden Szenarien aktiviert:

Für WPF- und WinUI 3-Apps

  • Der XAML-Code-Editor zeigt nun neu erstellte Steuerelementtypen und Eigenschaften ordnungsgemäß an, die durch einen .NET-Hot Reload-Vorgang in IntelliSense erstellt wurden.
  • Das Binden an eine neu erstellte Eigenschaft mithilfe von .NET Hot Reload funktioniert nun wie erwartet. Für WinUI können Sie jetzt auch x:Bind verwenden, um eine Bindung an eine neue Eigenschaft zu erstellen.

Für WPF-Apps

  • Das Hinzufügen einer neu erstellten Methode für einen Ereignishandler, der mithilfe von .NET Hot Reload erstellt wurde, funktioniert jetzt

Bitte unterstützen Sie uns beim Testen dieser neuen Features, indem Sie das neue Previewflag unter „Options > Preview Features > XAML IntelliSense updates after .NET Hot Reload“ (Optionen > Previewfunktionen > XAML IntelliSense wird nach .NET Hot Reload aktiviert) einschalten.

Hinweis: Die oben genannten Szenarien funktionieren zwar, wenn die Typen erstmalig mithilfe von .NET Hot Reload angewendet werden und anschließend XAML Hot Reload verwendet wird, es gibt jedoch eine bekannte Einschränkung. Wenn Sie beispielsweise die Zuweisung einer neuen Eigenschaft mithilfe von XAML Hot Reload einer Eigenschaft hinzufügen, die noch nicht erstellt wurde, und dann nur .NET Hot Reload verwenden, um sie zu erstellen, kann die XAML-Änderung die neue Eigenschaft nicht sehen. Dieses Problem ist uns bekannt, und wir hoffen, es in Zukunft zu verbessern.

XAML-Livevorschau

Mit XAML-Livevorschau ist es jetzt möglich, den Bildschirm einer laufenden App zu erfassen und ihn in einem angedockten Fenster in Visual Studio anzuzeigen, wodurch es einfacher wird, XAML und .NET Hot Reload zum Ändern der App zu verwenden, wobei die Änderungen an der Benutzeroberfläche sofort in der Visual Studio IDE sichtbar sind.

In diesem Release erweitern wir die Unterstützung über WPF, das erste unterstützte Framework, hinaus. Die Unterstützung umfasst nun Folgendes:

  • WinUI 3- oder Universal Windows Platform-Apps (UWP)
  • .NET MAUI bei Ausführung im Android-Emulator oder als WinUI 3-App
  • Xamarin.Forms bei Ausführung im Android-Emulator oder als UWP-App

XAML-Livevorschau an der linken Seite neben Code-Editoren angedockt, wenn eine .NET MAUI-App im Android-Emulator ausgeführt wird

Es gibt weiterhin einige Einschränkungen, beispielsweise die fehlende Elementauswahl für die Plattformen Xamarin.Forms und WinUI, und es ist nicht möglich, mit der ausgeführten App über eine XAML-Livevorschau zu interagieren.

Testtools

  • Im Test-Explorer anzeigen (Strg+E,S) : Im-Test-Explorer anzeigen ist die Funktion, mit der von Ihrer Cursorposition in einer Testmethode im Editor zur Ausführungsposition des Tests im Test-Explorer gesprungen werden kann. Möglicherweise erinnert Sie dies an ein ähnliches Feature mit der Bezeichnung Synchronisieren mit aktivem Dokument, bei dem das Dokument, an dem Sie aktuell Arbeiten, im Projektmappen-Explorer hervorgehoben wird. Dies war einer der am häufigsten gewünschten Punkte in der Entwickler-Community, also danke an alle, die mit abgestimmt und uns so geholfen haben, dieses Feature zu priorisieren! „Im Test-Explorer anzeigen“ ist auch über das Kontextmenü des Editors, die CodeLens-Testglyphe und über Klicken mit der rechten Maustaste im Projektmappen-Explorer verfügbar.

    „Im Test-Explorer anzeigen“ im Kontextmenü “Im Test-Explorer anzeigen“ in CodeLens

  • Update der Unterstützung für Webauslastungstest und Test der programmierten UI: Der Webauslastungstest-Rekorder ist jetzt in Visual Studio 2022, Vorschauversion 4, verfügbar. Der Rekorder für Tests der programmierten UI wird nicht in Visual Studio 2022 enthalten sein. Sie können trotzdem Tests der programmierten UI ausführen und neue Tests erstellen, indem Sie Code in Visual Studio 2022 schreiben, der Rekorder basiert jedoch auf 32-Bit-Abhängigkeiten, deren Portierung nicht möglich ist. Sie können jedoch weiterhin Visual Studio 2019 parallel installieren, um den Rekorder für die programmierte UI zu nutzen. Zur Erinnerung: Webauslastungstest und Test der programmierten UI wurden schon in der Version 2019 als veraltet erklärt, und wir haben die Absicht, sie aus dem Produkt zu entfernen, sobald wir die Auswirkungen auf die Benutzer minimieren können. Wir empfehlen Benutzern, die am Testen von Web-Benutzeroberflächen interessiert sind, das neue, plattformübergreifende und als Open Source gestaltete Web-Testframework Playwright einzuführen. Playwright unterstützt nicht nur alle gängigen Browser und bietet eine wesentlich bessere Verarbeitung von asynchronen Code, sondern verfügt auch über integrierte Funktionen für die Testaufzeichnung.

JavaScript/TypeScript

  • Wir haben einen neuen JavaScript-/TypeScript-Projekttyp veröffentlicht, der eigenständige JavaScript-/TypeScript-Projekte mit zusätzlichen Tools erstellt. Weitere Informationen dazu finden Sie hier.
  • NPM GUI verfügbar, sodass Sie NPM-Module in den neuen JavaScript-/TypeScript-Projekten jetzt auf die gleiche Weise herunterladen können wie NuGet-Pakete

NPM GUI NPM GUI2


Debuggen und Diagnose

Abhängiger Haltepunkt

Dies ist ein neuer Haltepunkt, mit dem Benutzer einen Haltepunkt so konfigurieren können, dass er nur aktiviert wird, wenn zuerst ein anderer Haltepunkt erreicht wird. Beim Debuggen hält der Visual Studio-Debugger die Anwendung am abhängigen Haltepunkt nur an, wenn der erforderliche Haltepunkt erreicht wird. Sie können jeden Haltepunkt in einen abhängigen Haltepunkt umwandeln, indem Sie im Einstellungsfenster das Kontrollkästchen „Nur aktivieren, wenn der folgende Haltepunkt erreicht wird“ aktivieren und den erforderlichen Haltepunkt aus der Dropdownliste auswählen, in der Sie den abhängigen Haltepunkt konfigurieren möchten.

Abhängiger Haltepunkt

Knotenupdates für externe Quellen

Der Knoten „Externe Quellen“ im Projektmappen-Explorer bietet jetzt auch C++-Unterstützung. Darüber hinaus haben wir einen neuen Unterknoten hinzugefügt, über den Sie alle Module mit Symbolen erreichen, die noch nicht geladen haben.

Der Knoten „Externe Quellen“ im Projektmappen-Explorer unterstützt C++.

Sie können auch das Kontextmenü mit der rechten Maustaste verwenden, um die Symbole direkt aus dem Projektmappen-Explorer zu laden, damit die Module in den externen Quellknoten angezeigt werden können. Die Dateien sind im Knoten „Externe Quelllen“ jetzt außerdem alphabetisch sortiert.

Menü „Externe Quellen“

17.0.0-pre.3.1 Visual Studio 2022, Version 17.0, Preview 3.1

Veröffentlichung: 16. August 2021

Zusammenfassung der Probleme, die in diesem Release von Visual Studio 2022, Version 17.0, Preview 3.1 behandelt werden

  • Ein Problem beim Installieren des Microsoft.WebView2-Pakets während der Visual Studio-Installation, das zum Scheitern der gesamten Installation führte, wurde behoben.
  • Es wurde das Problem behoben, dass Benutzern, die versuchten, Codeänderungen während eines Haltepunkts im Debugger anzuwenden, eine unbestimmte Statusleiste ohne Option zum Abbrechen angezeigt wurde.

Aus der Entwicklercommunity


17.0.0-pre.3.0 Visual Studio 2022, Version 17.0, Preview 3

Veröffentlichung: 10. August 2021

Bekanntes Problem

• Ein bekanntes Problem in Verbindung mit dem Coded UI Test Recorder führt zum Absturz von Visual Studio, wenn der Test Recorder zum ersten Mal gestartet wird. Die Reparatur von Visual Studio löst das Problem. Weitere Informationen finden Sie unter Developer Community (Entwickler-Community).

Zusammenfassung der Neuerungen in diesem Release von Visual Studio 2022, Version 17.0, Preview 3

Erweiterbarkeit

  • Fehlerbehebungen für Breaking Change beim ILanguageClient hinzugefügt

Vertrauenswürdige Speicherorte

  • Unterstützung für Git-Repositorys als vertrauenswürdige Speicherorte hinzugefügt
  • Überprüfungen der Vertrauensstellung erfolgen jetzt auf Projektmappenordnerebene
  • Vom Benutzer erstellte Projekte werden automatisch zur Liste der vertrauenswürdigen Projekte hinzugefügt
  • Benutzer können Überprüfungen der Vertrauensstellung für temporäre Speicherorte überspringen, die von Visual Studio erstellt wurden
  • Unterstützung für Gruppenrichtlinien zur Verwaltung der Vertrauensstellungen hinzugefügt

Editor

  • Teilwortnavigation hinzugefügt
  • Automatische Speicherung ist jetzt als Previewfunktion verfügbar
  • Kopier-/Einfügefunktionen bei mehreren Caretzeichen

Debuggen und Diagnose

  • Verbesserungen am Breakpointrand
  • Temporärer Breakpoint
  • Drag & Drop für Breakpoints
  • Knoten „Externe Quellen“ in Projektmappen-Explorer
  • Verbesserungen am Dialogfeld „An Prozess anfügen“
  • Diagnoseanalyse des Speicherabbilds

JavaScript/TypeScript

  • Wir haben einen neuen JavaScript-/TypeScript-Projekttyp veröffentlicht, der eigenständige JavaScript-/TypeScript-Projekte mit zusätzlichen Tools erstellt.
  • JavaScript- und TypeScript-Tests sind jetzt im Visual Studio-Test-Explorer verfügbar.

Git-Tools

  • Grundlegende Unterstützung für mehrere Repositorys unter einem Vorschauflag für Projektmappen, die verschiedene Repositorys umfassen (d. h. Projektmappen mit Projekten, die in verschiedenen Git-Repositorys gehostet werden)
  • Veröffentlichen in Azure DevOps wird bei der Funktion „Git-Repository erstellen“ jetzt vollständig unterstützt
  • Verbesserungen an der Statusleiste, einschließlich einer neuen Möglichkeit zum Anzeigen und Öffnen von Repositorys aus einem leeren VS
  • Verbesserungen bei Commitdetails, einschließlich einer reaktionsfähigeren und benutzerfreundlicheren Benutzeroberfläche
  • Das Überlaufmenü im Fenster „Git-Änderungen“ ist jetzt für lokale Repositorys mit zusätzlichen Git-Vorgängen verfügbar

.NET-Produktivität

  • Nullable-Verweistypen sind für neue .NET-Projekte jetzt standardmäßig aktiviert
  • Refactoring für Dateibereichsnamespaces in C# 10.0
  • Navigieren zu dekompilierten Quellen ist jetzt standardmäßig aktiviert
  • Refactoring mit höherer Priorität der Überprüfung auf NULL-Werte gegenüber der Typprüfung
  • XML-Kommentare generieren jetzt automatisch ein <exception>-Tag, wenn eine Methode explizit Ausnahmen auslöst
  • Vererbungsrand ist jetzt standardmäßig aktiviert

C++

  • CMake-Übersichtsseiten wurden für die Unterstützung von „CMakePresets.js“ aktualisiert.
  • Sie können ihre CMake-Projekte jetzt mit CMake 3.21 konfigurieren und „CMakePresets.jsv3“ erstellen.
  • Sie können jetzt Prozesse, die auf einem Remotesystem ausgeführt werden, aus Visual Studio mit LLDB debuggen.
  • Verbesserungen an C++-IntelliSense beim Bereitstellen von Navigations- und Syntaxhervorhebungen für Typen aus importierten Modulen und Headereinheiten. Dieses Gebiet wird von uns aktiv weiterentwickelt. Geben Sie Ihr Feedback in der Entwicklercommunity über „Hilfe“ > „Feedback senden“ ab.
  • Verbesserte C++-IntelliSense-Leistung durch Optimieren der Verwendung von zwischengespeicherten Headern und des Zugriffs auf Symboldatenbanken und in der Folge verbesserte Ladezeiten beim Zugriff auf Ihren Code.
  • Der IntelliSense-Code-Linter für C++ ist jetzt standardmäßig aktiviert und unterbreitet sofort Vorschläge bei der Eingabe und Korrekturvorschläge für häufige Codefehler.
  • Aktualisierung auf NDK r21 LTS in der Workload für die mobile C++-Entwicklung.
  • Unterstützung für gsl::not_null zur Codeanalyse hinzugefügt.

Razor-Editor (ASP.NET Core)

  • Benutzeroberfläche friert seltener ein und die Leistung beim Starten der Projektmappe wurde verbessert
  • Schnellere semantische Farbgebung (bei bestimmten Projektmappen bis zu 2-mal schneller)
  • F7-Unterstützung (Code anzeigen) in Razor-Dateien
  • Codeausschnittunterstützung in Razor-Dateien, bei der eine Ausschnittsitzung mit einmaligem statt zweimaligem Drücken der TAB-TASTE abgeschlossen wird
  • Bessere Formatierung in @code-Blöcken bei geschachtelten HTML- und Razor-Komponenten

Hot Reload-Funktionen

Testfunktionalität

  • Hot Reload ist jetzt in Ihrer Testumgebung verfügbar! Beschleunigen Sie Ihre Testläufe, da zwischen Testläufen nach geringfügigen Codebearbeitungen keine vollständigen Builds mehr erforderlich sind.
  • Remotetests: Das Debuggen von Remoteumgebungen, die mit Docker und WSL verbunden sind, ist jetzt verfügbar. Ein Debuggen ist auch über SSH-Verbindungen möglich, wenn Sie mit Linux verbunden sind. Anweisungen zum Setup finden Sie in den Versionshinweisen zu Preview 2.

Benutzeroberfläche

  • Im Rahmen unserer Überarbeitung der Benutzeroberfläche für Visual Studio 2022 wurde das dunkle Standarddesign aktualisiert, um den Kontrast zu erhöhen und die Navigation und die Übersichtlichkeit zu verbessern.
  • Sie können nun Ihr Visual Studio-Design mit Ihrem Windows-Betriebssystemdesign synchronisieren. Wenn Sie über ein helles Systemdesign verfügen, ist das Visual Studio-Design blau. Bei einem dunklen Systemdesign verwendet Visual Studio das dunkle Design. Diese Funktion können Sie über „Extras“ > „Optionen“ > „Allgemein“ > „Systemeinstellungen verwenden“ aktivieren.

Als wichtig bewertete Probleme aus der Entwicklercommunity

Details zu den Neuerungen in diesem Release von Visual Studio 2022, Version 17.0, Preview 3

Erweiterbarkeit

Microsoft.VisualStudio.LanguageServer.Client bietet eine neue Möglichkeit zum Anpassen von Benachrichtigungen, wenn ein Sprachclient nicht initialisiert werden kann.

Der Initialisierungstask wird nun vom Aufgabenstatuscenter (Task Status Center, TSC) nachverfolgt. Bei einem Fehler bei der Initialisierungsaufgabe können Benutzer zum TSC wechseln und weitere Informationen zum Fehler erhalten. Sprachclients können jetzt die Meldung anpassen, die dem Benutzer angezeigt wird und Informationen dazu enthält, was dieser Fehler bedeutet, sowie mögliche Maßnahmen zur Fehlerbehebung. Dazu führen wir neue APIs in der ILanguageClient-Schnittstelle ein. Diese neuen APIs würden zu einem Breaking Change in der ILanguageClient-Schnittstelle führen, sodass Spracherweiterungen auf das neue Paket verweisen müssen, damit sie in Visual Studio 2022 funktionieren.

Die neuen APIs lauten wie folgt:

  1. ShowNotificationOnInitializeFailed-Eigenschaft: Boolesche Eigenschaft, die bestimmt, ob der Sprachserver eine Sprechblase anzeigen möchte, in der der Benutzer wie folgt über den Fehler benachrichtigt wird:

ShowNotificationOnInitializeFailed im Aufgabenstatuscenter

Es wird empfohlen, diese Eigenschaft nur dann auf TRUE festzulegen, wenn der Fehler schwerwiegende Auswirkungen auf die Benutzererfahrung bei dem Projekt hat, an dem die Benutzer gerade arbeiten.

  1. OnServerInitializedFailedAsync-Methode: Diese Methode wird aufgerufen, wenn die Initialisierung des Sprachclients einen Fehler verursacht. Wir stellen ein LanguageClientInitializationInfoBase-Objekt mit Informationen zum Auftreten des Fehlers bereit, damit der Sprachclient den Benutzer auf eigene Weise über den Fehler benachrichtigen oder eine benutzerdefinierte Meldung mit dem Kontext des Fehlers bereitstellen kann. Wenn die Meldung angegeben ist, wird sie im Ausgabefenster von Visual Studio angezeigt.

Sprachclientinitialisierungsfehler im Ausgabefenster

Vertrauenswürdige Speicherorte

Bevor Inhalte (z. B. Projektmappe, Projekt, Datei oder Ordner) innerhalb der IDE geöffnet wird, wird überprüft, ob der Ordnerspeicherort oder das Repository zuvor als vertrauenswürdig eingestuft wurde.

Wenn nicht vertrauenswürdiger Code erkannt wird, wird ein Warndialogfeld angezeigt, in dem Sie ihn auf ggf. Ordner-, Repository- oder Repositorybesitzerebene als vertrauenswürdig festlegen können.

Neu bei Preview 3:

  • Erkennen der Vertrauensstellung und Festlegen der Vertrauenswürdigkeit auf Stammverzeichnisebene der Projektmappe
  • Der Pfad der vom Benutzer erstellten Projekte wird automatisch zur Liste der vertrauenswürdigen Speicherorte des Benutzers hinzugefügt
  • Überprüfung der Repositoryvertrauensstellung ist jetzt ein optionales Feature (standardmäßig deaktiviert)
  • Möglichkeit zum Hinzufügen von Repositorys zur Liste der vertrauenswürdigen Speicherorte über „Optionen“ > „Vertrauensstellung“
  • Möglichkeit zum Überspringen von Überprüfungen der Vertrauensstellung für temporäre Speicherorte, die von Visual Studio-Funktionalität erstellt wurden
  • Unternehmen können Gruppenrichtlinien nutzen, um den Aktivierungszustand des Features zu konfigurieren, der Liste der vertrauenswürdigen Standorte neue Einträge hinzuzufügen und andere Einstellungen zu ändern
  • Dieses Feature ist derzeit standardmäßig deaktiviert, kann aber über „Optionen“ > „Vertrauenseinstellungen“ > „Require a trust decision before opening content“ (Vertrauensentscheidung vor Öffnen von Inhalten erforderlich) aktiviert werden.

Editor

Teilwortnavigation

Mit STRG+ALT+NACH-LINKS und STRG+ALT+NACH-RECHTS navigieren jetzt zwischen Teilwörtern. Beispielsweise werden in der Zeichenfolge „HelloWorld“ jeweils „Hello“ und „World“ als Teilwörter erkannt. Das Aktivieren der Teilwortnavigation unter Extras > Optionen > Text-Editor > Allgemein führt dazu, dass wörterbezogene Befehle (z. B. „Wort austauschen“) für Teilwörter ausgeführt werden.

Automatisches Speichern

Die Option für automatisches Speichern ist jetzt unter Extras > Optionen > Umgebung > Vorschaufunktionen verfügbar. Wenn diese Option aktiviert ist und die Visual Studio-Anwendung den Fokus verliert (z. B. wenn ein anderes Fenster den Fokus erhält), werden nach Möglichkeit alle geänderten Dokumente auf dem Datenträger gespeichert. Wenn eine Datei nicht gespeichert werden kann, behält Sie den Status als geänderte Datei bei, bis der Benutzer sie explizit (mit den Befehlen „Speichern“ oder „Speichern unter“) speichert.

Kopier-/Einfügefunktionen bei mehreren Caretzeichen

Die Kopier- und Einfügefunktionen bei mehreren Caretzeichen wurden verbessert. Bisher führte das Einfügen mehrerer Zeilen bei mehreren Carets dazu, dass die gesamte Zwischenablage an jedem Caret dupliziert wurde. Wenn Sie nun mehrere Zeilen in dieselbe Anzahl von Carets einfügen, wird jede Zeile am entsprechenden Caretzeichen eingefügt. Zum Verwenden mehrerer Carets drücken Sie ALT+UMSCHALT+ Mausklick oder ALT+UMSCHALT+. und STRG+UMSCHALT+ PFEILTASTE, um die Auswahl zu erweitern. Drücken Sie anschließend STRG+C, um den Text in mehrere Auswahlen zu kopieren. Verwenden Sie ALT+UMSCHALT+ Mausklick, um mehrere Carets für jede Zeile zu erstellen, die Sie an den gewünschten Positionen einfügen möchten. Drücken Sie schließlich STRG+V, um jede Zeile an einem eigenen Caret einzufügen.

Kopieren und Einfügen mit mehreren Caretzeichen

Darüber hinaus können Sie ALT+UMSCHALT+ NACH-OBEN oder NACH-UNTEN oder ALT+UMSCHALT+ Ziehen verwenden, um Inhalte mit mehreren Carets auszuwählen. Bisher wurde mit diesen Gesten eine Blockauswahl vorgenommen. Jetzt wird die Blockauswahl in mehrere Carets umgewandelt. Diese Methode ist einfacher und schneller, als auf genau die Stellen klicken zu müssen, an denen einzelne Carets eingefügt werden sollen. Wenn Sie lieber weiterhin mit ALT+UMSCHALT+ PFEILTASTEN und ALT+UMSCHALT+ Ziehen beim Erweitern der Auswahl mit mehreren Carets die Blockauswahl verwenden möchten, wählen Sie unter Extras > Optionen > Text-Editor > Erweitert die Option Use box selection (Blockauswahl verwenden) aus.

Option für die Blockauswahl mit mehreren Carets

<a name="debugging--diagnostics">Debuggen und Diagnose

Verbesserungen am Breakpointrand

Wir haben eine neue Breakpointglyphe hinzugefügt, um die Position anzugeben, an der der Benutzer einen Breakpoint setzen kann.

![Breakpointglyphe](media/17.0/17.0_P3_bp_glyph.png "Breakpointglyphe")

Wenn Sie mit der rechten Maustaste auf diese Breakpointglyphe klicken, wird ein neues Kontextmenü mit Optionen angezeigt. So können Sie mit weniger Klicks erweiterte Breakpoints (bedingter Haltepunkt, Ablaufverfolgungspunkt und temporärer Breakpoint) erstellen.

Breakpoint-Kontextmenü

Temporärer Breakpoint

Dieser neue Breakpoint ermöglicht es Benutzern, nur einmal im Code anzuhalten. Beim Debuggen hält der Visual Studio-Debugger die Anwendungsruntime nur einmal bei diesem Breakpoint an und entfernt ihn, sobald er erreicht wurde. Sie können jeden Breakpoint in einen temporären Breakpoint konvertieren, indem Sie das Kontrollkästchen „Remove breakpoint once hit“ (Haltepunkt nach Erreichen entfernen) im Einstellungsfenster aktivieren. Alternativ können Sie das neue Rechtsklick-Kontextmenü im Breakpointrand verwenden, um diesen Breakpoint festzulegen.

Temporärer Breakpoint

Drag & Drop für Breakpoints

Breakpoints unterstützen jetzt die Drag & Drop-Geste. Sie können nun den Breakpoint gedrückt halten und die Maus in der gewünschten Codezeile loslassen, um den Breakpoint von einer Position an eine andere zu verschieben. Dies funktioniert bei erweiterten Breakpoints, solange sich die Aktionen/Bedingungsvariablen im gleichen Kontext befinden.

Drag & Drop für Breakpoints

Knoten „Externe Quellen“ in Projektmappen-Explorer

Im Projektmappen-Explorer ist der Knoten „Externe Quellen“ hinzugekommen. Dieser wird derzeit nur beim Debuggen angezeigt und listet Quellen für verwaltete Module mit geladenen Symbolen auf, die Quellserver- oder Quelllinkinformationen enthalten. Während des Debuggens werden alle geladenen verwalteten Symboldateien (PDB-Dateien), die Quellserverinformationen enthalten, unter diesem Knoten angezeigt. Sie können Dateien wie jeden anderen Ordner im Projektmappen-Explorer durchsuchen oder auf ein Element doppelklicken, um die Datei vom Quellserver herunterzuladen und im VS-Editor zu öffnen. Knoten „Externe Quellen“ in Projektmappen-Explorer

Verbesserungen am Dialogfeld „An Prozess anfügen“

Das Dialogfeld „An Prozess anhängen“ verfügt jetzt über ein neues Kontrollkästchen für die automatische Aktualisierung. Wenn dieses aktiviert ist, wird die Prozessliste mit den verfügbaren Prozessen automatisch aktualisiert. Die neue Option „Select any window from desktop“ (Beliebiges Fenster vom Desktop auswählen) im Dialogfeld „An Prozess anhängen“ ermöglicht dem Benutzer das Auswählen eines beliebigen ausgeführten Fensters auf dem Desktop und das Anfügen an den zugeordneten Prozess zum Debuggen.

Verbesserungen am Dialogfeld „An Prozess anfügen“

Diagnoseanalyse des Speicherabbilds

Das Suchen der Stammaufrufframes, wenn eine Ausnahme wegen eines Stapelüberlaufs auftritt, kann schwierig und zeitaufwendig sein. Unsere neuesten Analysetools bieten eine praktische Ansicht der Aufrufliste und entfernen mehrfach aufgeführte und sehr aktive Frames, um die Problemanalyse zu verkürzen.

JavaScript/TypeScript

Der neue JavaScript-/TypeScript-Projekttyp wird jetzt unterstützt, mit dem Sie eigenständige Angular-, React- und Vue-Projekte in Visual Studio erstellen können. Die Projekte werden mithilfe der Framework-CLI-Tools erstellt, die Sie auf Ihrem lokalen Computer installiert haben. Dies bedeutet auch, dass die Vorlagenversion auf den CLI-Versionen von Ihrem lokalen Computer basiert.

Innerhalb dieser neuen Projekte können Sie Komponententests ausführen und diese in ASP.NET Core API-Projekte integrieren. Die entsprechende Dokumentation finden Sie hier.

.NET-Produktivität

C#-Sprachtools

In C# 8.0 haben wir Nullable-Verweistypen eingeführt, mit denen Sie deklarieren können, ob NULL erwartet wird. Um Nullable-Verweistypen zu verwenden, müssen Sie entweder der Projektdatei das <Nullable>enable</Nullable>-Element oder jeder Quelldatei in Ihrem Projekt das #nullable enable-Pragma hinzufügen. Um diesen Prozess zu optimieren, ist <Nullable>enable</Nullable> jetzt in neuen .NET-Projekten automatisch enthalten.

In C# 10.0 führen wir einen Dateibereichsnamespace ein, der Ihnen die Möglichkeit gibt, Klassendefinitionen innerhalb eines Namespace nicht zu schachteln. Durch Refactoring kann ein Namespace in einen Dateibereichsnamespace konvertiert werden. Um Dateibereichsnamespaces verwenden zu können, müssen Sie ihrer Projektdatei zunächst das <LangVersion>preview</LangVersion>-Element hinzufügen. Platzieren Sie den Cursor als Nächstes auf einem Namespace. Drücken Sie (Ctrl+ . ), um das Menü Schnellaktionen und Refactorings zu öffnen. Wählen Sie Convert to file-scoped namespace (In Dateibereichsnamespace konvertieren) aus.

Refactoring für Dateibereichsnamespaces

Beim Refactoring kann beim Anwenden auf Werttypen jetzt is not null den Vorrang vor is object erhalten. Um dieses neue Refactoring zu verwenden, platzieren Sie den Cursor auf einer Typprüfung. Drücken Sie (Ctrl+ . ), um das Menü Schnellaktionen und Refactorings zu öffnen. Wählen Sie Prefer null check over type check (NULL-Überprüfung gegenüber Typprüfung bevorzugen) aus.

Navigation zu dekompilierten Quellen

Das Navigieren zu dekompilierten Quellen ist jetzt standardmäßig aktiviert, sodass Sie zu Deklarationen von Bibliothekstypen navigieren können. Das Navigieren zu dekompilierten Quellen ist verfügbar, wenn Sie bei einem Bibliothekssymbol in Ihrem Quellcode und bei dekompilierten Quellen „Gehe zu Definition“ aufrufen.

Editorerweiterungen

XML-Kommentare generieren nun automatisch ein <exception>-Tag innerhalb eines <summary>-Tags, sodass Sie eine Beschreibung hinzufügen können, wenn eine Methode explizit Ausnahmen auslöst.

Im Visual Studio 2019 wurde der Vererbungsrand eingeführt, bei dem Symbole in den Rändern Implementierungen und Außerkraftsetzungen Ihres Codes darstellen. Wenn Sie am Vererbungsrand auf ein Symbol klicken, werden Vererbungsoptionen für die Navigation angezeigt, die Sie auswählen können. In dieser Version ist der Vererbungsrand standardmäßig aktiviert. Um den Vererbungsrand zu deaktivieren, gehen Sie zu Extras > Optionen > Text-Editor > C# oder Basic > Erweitert, und deaktivieren Sie Enable Inheritance Margin (Vererbungsrand aktivieren).

Vererbungsrand

Hot Reload-Funktionen

XAML Hot Reload: In dieser Version wurden die Einstellungen für XAML Hot Reload und die In-App-Symbolleisten aktualisiert, um leichter erkennbar zu machen, dass sich die Einstellungen und die In-App-Funktion auf XAML Hot Reload und nicht auf .NET Hot Reload beziehen.

Aktualisierte In-App-Symbolleiste in XAML-Apps

Außerdem wurde der Einstellungsbereich optimiert, indem häufig verwendete Optionen zusammen angeordnet wurden und eine neue Option zum Aktivieren/Deaktivieren für .NET MAUI bereitgestellt wurde.

Aktualisierter Optionsbereich für XAML-Einstellungen

.NET/C++-Hot Reload

Mit diesem Release bieten wir weitere Verbesserungen an unseren neuen Hot Reload-Funktionen für .NET- und C++-Code.

Neues in diesem Release:

  • Unterstützung für zusätzliche Bearbeitungstypen für .NET-Apps bei „Bearbeiten und Fortfahren“ und Hot Reload wurde hinzugefügt. Dies umfasst Folgendes:

    • Möglichkeit zum Hinzufügen oder Ändern von #line-Direktiven
    • Möglichkeit zum Aktualisieren von Anweisungen der obersten Ebene
    • Verbesserte Fehler-/Warnmeldungen, um zu verdeutlichen, wann die Meldungen sowohl für „Bearbeiten und Fortfahren“ als auch für Hot Reload gelten. Hierzu wurden die Meldungen verallgemeinert, sodass die Terminologie für „Bearbeiten und Fortfahren“ bei Hot Reload nicht verwendet wird
  • Seit der Veröffentlichung von Visual Studio 2022 Preview 2 wird Hot Reload für .NET-Apps unterstützt, wenn die Anwendung ohne den Debugger über STRG+F5 gestartet wird. In dieser Version haben wir zwei Verbesserungen an dieser Funktion vorgenommen:

    • Hot Reload wird jetzt für Blazor Wasm-Apps unterstützt, wenn die Anwendung mit STRG+5 gestartet wird
    • Wenn Sie mehrere Instanzen derselben App mit STRG+F5 starten, erfolgt Hot Reload bei allen ausgeführten Prozessen.
  • Für ASP.NET Core- und Blazor-Entwickler

Testfunktionalität

Hot Reload im Test-Explorer [experimentell]: Sie können jetzt ein neues experimentelles Feature ausprobieren, das Ihre Testerfahrung mithilfe der Hot Reload-Technologie im Hintergrund beschleunigt. Dies bedeutet, dass Sie nach dem ersten Testlauf, bei dem noch ein vollständiger Build erforderlich ist, kleinere Änderungen vornehmen, Ihre Tests ausführen können, und alle diese Aktualisierungen berücksichtigt werden, ohne erneut einen vollständigen Build ausführen zu müssen. Im Folgenden erhalten Sie weitere Details zu den ersten Schritten und Einschränkungen:

Hot Reload für den Test-Explorer in Visual Studio ermöglicht ihnen das Ausführen von Tests, ohne dass nach geringfügigen Änderungen ein Build erstellt werden muss

  • Diese Funktion ist nur bei Projekten verfügbar, die .NET 6 als Ziel verwenden, und Sie müssen sie unter „Extras“ > „Optionen“ > „Test“ aktivieren

Screenshot von Visual Studio mit der Option „Hot Reload“ unter „Extras“ > „Optionen“ > „Test“.

  • Wenn diese Option aktiviert ist, werden Ihre Tests auch bei nicht gespeicherten Änderungen im Editor aktualisiert. Es wird kein Build erstellt, sodass die Binärdateien im Ordner „bin“ auf dem Datenträger veraltet sind. Dies bedeutet, dass es möglicherweise Abweichungen zwischen dem, was auf dem Datenträger gespeichert ist, und ihren Testergebnissen zu Visual Studio gibt. Vergewissern Sie sich, dass Sie einen vollständigen Build erstellen, indem Sie STRG+UMSCHALT+B drücken, um diese Abweichungen aufzulösen, bevor Sie die Dateien einchecken. Jeder explizite Build ersetzt die Hot Reload-Testergebnisse durch die regulären Testergebnisse des vollständig neu erstellten Builds.

  • Es gibt bestimmte Arten von Bearbeitungen, die von Hot Reload nicht erkannt werden. In diesen Fällen wird standardmäßig das alte Verhalten eines vollständigen Builds verwendet. Beachten Sie auch, dass nur Änderungen in Visual Studio nachverfolgt werden. Bei nicht offensichtlichen Fällen im Editor wie dem Ändern von Zielen wird möglicherweise auf das Standardverhalten des Erstellens eines vollständig neuen Builds zurückgegriffen.

  • Bei bestimmten umfassenden Änderungen (z. B. dem Umbenennen von mehr als 1.000 Methodennamen) kann ein Hot Reload länger dauern als die Erstellung eines neuen Builds. In diesen Fällen wird eine Meldung ausgegeben, in der Benutzer aufgefordert werden, einen vollständig neuen Build zu erstellen, anstatt auf den Abschluss des Hot Reload zu warten.

  • Stapelüberwachungen sind beim Hot Reload im Test-Explorer noch nicht verfügbar. Wenn Sie die Stapelüberwachung verwenden müssen, wird empfohlen, einen vollständig neuen Build zu erstellen.


17.0.0-pre.2.1 Visual Studio 2022 Version 17.0 Preview 2.1

Veröffentlichung: 22. Juli 2021

Zusammenfassung der Neuerungen in diesem Release von Visual Studio 2022, Version 17.0, Preview 2.1

  • Es wurde ein Absturz behoben, der beim Starten oder Herunterfahren des Leistungs-Profilers oder der Diagnosetools oder beim Öffnen oder Schließen der Projektübersichtsseiten auftreten kann.
  • Es wurde ein Absturz bei der Lizenzierung behoben, der bei Deinstallation des englischsprachigen Language Packs auftrat.
  • Es wurde ein Problem behoben, bei dem Dokumentregisterkarten in einer Layoutschleife festgehalten werden.

17.0.0-pre.2.0 Visual Studio 2022 Version 17.0 Preview 2

Veröffentlichung: 14. Juli 2021

Zusammenfassung der Neuerungen in diesem Release von Visual Studio 2022, Version 17.0, Preview 2

C++

  • Das Kompilieren und Debuggen kann jetzt nativ unter WSL2 erfolgen, ohne dass eine SSH-Verbindung hergestellt wird. Sowohl plattformübergreifende CMake-Projekte als auch MSBuild-basierte Linux-Projekte werden unterstützt.
  • Die v143-Buildtools sind jetzt über das Visual Studio-Installationsprogramm sowie über die eigenständigen Buildtools verfügbar.
  • Visual Studio unterstützt jetzt die Option buildPresets.targets in „CMakePresets.json“. Dadurch können Sie eine Teilmenge von Zielen in Ihrem CMake-Projekt erstellen.
  • Das Menü „Projekt“ in CMake-Projekten wurde optimiert und umfasst die Optionen „Cache löschen und neu konfigurieren“ und „Cache anzeigen“.
  • Die Codeanalyse erzwingt jetzt, dass Rückgabewerte von Funktionen, die mit _Check_return_ oder _Must_inspect_result_ kommentiert sind, überprüft werden müssen.
  • Die mit Visual Studio ausgelieferten LLVM-Tools wurden auf LLVM 12 aktualisiert. Weitere Informationen finden Sie in den LLVM-Versionshinweisen.
  • Die Clang-cl-Unterstützung wurde auf LLVM 12 aktualisiert.
  • C++ AMP-Header gelten jetzt als veraltet. Die Einbeziehung von <amp.h> in ein C++-Projekt führt zu Buildfehlern. Definieren Sie _SILENCE_AMP_DEPRECATION_WARNINGS, um die Fehler auszublenden. Weitere Informationen finden Sie unter den [Links zur Einstellung von AMP]https://aka.ms/amp_deprecate.
  • Die neue Hot Reload-Funktion ist jetzt für native C++-Anwendungen verfügbar, wenn sie unter dem Debugger ausgeführt werden. Weitere Informationen finden Sie weiter unten im Abschnitt zu Hot Reload.

Debuggen und Diagnose

  • Verbesserungen am Dialogfeld „An Prozess anfügen“
  • Verbesserungen am Ausnahmehilfsprogramm
  • Erzwingen von „Ausführen bis Klick“
  • Diagnoseanalyse des Speicherabbilds

.NET-Produktivität

  • Durch das Einführen des Refactorings von Parametern kann ein neuer Parameter aus der Methodenimplementierung in die zugehörigen Aufrufer verschoben werden.
  • Nachverfolgen der Wertquelle für die Datenflussanalyse
  • Option zum Unterstreichen neu zugewiesener Variablen
  • Hinzugefügte Suchoption im Dialogfeld „Überschreibungen generieren“
  • QuickInfo für <code>-XML-Tags behält jetzt Leerzeichen und CDATA-Blöcke bei.
  • Im Fenster „Alle Verweise suchen“ werden jetzt Projekte mit mehreren Zielen gruppiert.
  • Refactoring zum Entfernen sich wiederholender Typen in Visual Basic
  • Durch „Zur Implementierung wechseln“ wird nicht mehr zu Membern mit abstrakten Deklarationen navigiert, die außerdem überschrieben werden.

Razor-Editor (ASP.NET Core)

  • Hot Reload-Unterstützung in Razor-Dateien
  • Leistungsverbesserungen
  • Formatierungs- und Einzugserweiterungen
  • Neue Farben im Razor-Editor
  • TagHelpers werden jetzt farbig dargestellt und verfügen über Unterstützung für die QuickInfo-Klassifizierung sowie QuickInfos zur Vervollständigung.
  • Hervorhebung von und Navigation in spitzen Klammern für Razor-Konstrukte
  • Kommentare verfügen jetzt über automatische Vervollständigung, intelligenten Einzug, automatisches Einrücken von Kommentarfortsetzungen und Blockkommentarnavigation.

Hot Reload

  • Mithilfe von Hot Reload (für .NET- und C++-Code) können Sie viele Arten von Codebearbeitungen an laufenden Apps vornehmen, ohne die Ausführung der Apps beispielsweise durch einen Haltepunkt anhalten zu müssen. In diesem Release wird dieses Feature weiter verbessert. Highlights: Unterstützung für C++, .NET Hot Reload bei Ausführung ohne Debugger (STRG+F5), Unterstützung für weitere Bearbeitungstypen und vieles mehr.

Vertrauenswürdige Speicherorte

  • Wir haben die Funktion „Vertrauenseinstellungen“ überarbeitet, sodass jetzt eine Warnung angezeigt wird, wenn nicht vertrauenswürdiger Code (z. B. Dateien, Projekte oder Ordner) innerhalb der IDE geöffnet wird.

XAML-Livevorschau

  • Die XAML-Livevorschau ist jetzt für WPF-Entwickler als erste Vorschau dieser neuen Oberfläche verfügbar. In der Livevorschau kann eine Desktop-App-Benutzeroberfläche erfasst und in ein angedocktes Fenster in Visual Studio eingefügt werden. So können Sie die App leichter mit XAML Hot Reload ändern und die Änderungen sofort anzeigen. Dieses Feature verbessert die XAML Hot Reload-Funktion auf einem Gerät mit nur einem Bildschirm und ermöglicht Ihnen gleichzeitig die Überarbeitung der App-Benutzeroberfläche mit Tools wie Deep Zoom, Linealen, Elementauswahl und Infotipps.

Remotetests

  • Sehr frühe experimentelle Vorschau zum Aktivieren der Ausführung von Tests in Remoteumgebungen wie Linux-Containern, WSL und über SSH-Verbindungen.

Benutzeroberfläche

  • Die Standardsymbole wurden aktualisiert.

Azure Cloud Services

  • Projekte aus Azure Cloud Services (klassisch) und Azure Cloud Services (erweiterter Support) werden jetzt unterstützt.

JavaScript/TypeScript

  • Wir haben einen neuen JavaScript-/TypeScript-Projekttyp veröffentlicht, der eigenständige JavaScript-/TypeScript-Projekte mit zusätzlichen Tools erstellt. Sie können mithilfe der auf Ihrem Computer installierten Frameworkversion Angular- und React-Projekte in Visual Studio erstellen.
  • JavaScript- und TypeScript-Tests sind jetzt im Visual Studio-Test-Explorer verfügbar.

XAML-Beispieldaten

  • Beispieldaten für die Entwurfszeit werden jetzt standardmäßig hinzugefügt, wenn DataGrid-, ListBox- und ListView-Steuerelemente aus der Toolbox in WPF-Anwendungen hinzugefügt werden. Um dieses Verhalten zu deaktivieren, deaktivieren Sie unter „Extras“ > „Optionen“ > „XAML-Designer“ die Option „Automatically add sample data on element creation“ (Beispieldaten bei Elementerstellung automatisch hinzufügen).
  • Weitere Informationen zu Beispieldaten finden Sie in der Dokumentation zu Beispieldaten.

Menü „Hilfe“

In 17.0 haben wir das Hilfemenü umgestaltet. Im aktualisierten Menü werden Informationen zu den ersten Schritten und hilfreiche Tipps/Tricks hervorgehoben. Zudem bietet es auch weitere Funktionen für die Zusammenarbeit mit unserem Entwicklungsteam, indem beispielsweise Zugriff auf die Entwicklercommunity, auf Versionshinweise, auf die Roadmap für Visual Studio-Produkte und auf unsere Social Media-Seiten hinzugefügt wird. Wir möchten Entwicklern die optimale Nutzung ihrer Abonnements ermöglichen. Sehen Sie sich daher Ihre Abonnementvorteile und andere Details über das neue Menüelement „Mein Abonnement“ an!

Probleme, die in diesem Release behandelt werden

  • Es wurde ein Problem behoben, bei dem bei Ausführung von ReactRedux mit IIS Express eine Website nicht geladen werden konnte.
  • Es wurde ein Problem behoben, das die Fehlermeldung „Nicht abgefangener ReferenceError: notifyHotReloadApplied ist nicht definiert“ verursacht hat.
  • Ein Fehler beim Herstellen einer Verbindung mit dem Server für 6.0-signalR-Projekte bei Verwendung von STRG+F5 wurde behoben.
  • Es wurde ein Problem behoben, bei dem die Reihenfolge der Suche nach Include-Elementen möglicherweise falsch ist, wenn „Include Directories“ vorangestellt wird.
  • Behobenes Datenbankprojekt: Wenn Sie eine Datei aus dem Projektmappen-Explorer in eine geöffnete Datei ziehen, wird die Datei aus dem Dateisystem gelöscht.

Als wichtig bewertete Probleme aus der Entwicklercommunity

Details der Neuerungen in Visual Studio 2022 Preview 2

Debuggen und Diagnose

  • Verbesserungen am Dialogfeld „An Prozess anfügen“
  • Neue Ansicht der Liste übergeordneter/untergeordneter Prozesse über Umschalttaste im unteren Fensterbereich
    • Die Auswahl der Ansicht sollte beibehalten werden.
    • Durch Drücken der NACH-LINKS-TASTE auf der Tastatur gelangen Sie zum übergeordneten Prozess in der Ansicht über- und untergeordneter Prozesse.
    • Alle Spalten sollten entsprechend der ursprünglichen Ansicht sortierbar sein.
  • Die Spalte „Neue Befehlszeile“ ist in beiden Ansichten verfügbar.
  • Der Name des App-Pools wird in der Titelspalte für w3wp-Prozesse angezeigt.

![Anhängen an den Prozess ](media/17.0/17.0_P2_attach_to _process_3.png)

  • Im catch-Block wurde ein Ausnahmehilfsprogramm hinzugefügt. Dadurch wird das Ausnahmehilfsprogramm mit den relevanten Ausnahmeinformationen angezeigt, wenn ein verwalteter Schritt eine Ausnahme auslöst und der Schritt in einem catch-Block abgeschlossen wird.
  • Eine neue Schaltfläche „Weiter“: Zeigt das Ausnahmehilfsprogramm für abgefangene Ausnahmen an.

Updates bei Ausnahmehandlern

  • Wir haben eine Option zum Erzwingen von „Ausführung bis Klick“ hinzugefügt. Hiermit wird der Debugger ausgeführt, bis die ausgewählte Cursorposition erreicht ist, während alle dazwischen liegenden Haltepunkte ignoriert werden.
  • Sie können diese Option ausführen, indem Sie im Kontextmenü in der gewünschten Codezeile auf „Ausführung bis Klick erzwingen“ klicken.

Erzwingen von „Ausführung bis Cursor“

  • Wenn sich die Anwendung im Debugmodus befindet, können Sie „Ausführung bis Klick erzwingen“ auch ausführen, indem Sie auf die neben einer Codezeile angezeigte grüne Glyphe klicken. Diese wird eingeblendet, wenn Sie bei gehaltener UMSCHALTTASTE mit der Maus darauf zeigen.

Glyphe zum Erzwingen von „Ausführung bis Cursor“

  • Diagnoseanalyse des Speicherabbilds
    • Wir haben die Analysetool-Engine verbessert, um weitere sync-over-async-Probleme in ASP.NET Core-Speicherabbildern zu finden.
    • Sehen Sie sich die fünf wichtigsten Threads nach CPU-Zeit an, um herauszufinden, welche Teile Ihres Codes die meisten CPU-Ressourcen verbrauchen.
    • Überprüfen Sie den gesamten verwalteten Heap auf Anzeichen von Speicherauslastung in Generation 0, 1, 2 sowie im Large Object Heap.
    • Wenn Sie über ein Absturzabbild verfügen, finden Sie schnell die Ausnahme und den Thread des zweiten Versuchs, die den Absturz Ihrer Anwendung verursacht haben.
    • Haben Sie Probleme beim Aufstellen einer Diagnosehypothese? Wenn die genaue Ursache eines Absturzes oder Stillstands nicht bekannt ist, können Sie das Ausnahmeanalysetool verwenden, um schnell alle Ausnahmen im Heap zu finden und zu überprüfen.
    • Für die Momente, in denen die Speicheranalyse wichtig ist, haben wir die Heuristik des Finalizer-Warteschlangenanalysetools verbessert. Der Fokus liegt jetzt auf Ihrem Code, und vom .NET Framework verwaltete Objekte werden ausgeschlossen.

.NET-Produktivität

  • Es ist jetzt ein Refactoring verfügbar, das einen Parameter einführt, der einen Ausdruck aus einer Methodenimplementierung in seine Aufrufer verschiebt, indem ein neuer Parameter hinzugefügt wird. Platzieren Sie den Cursor in der Zeile, die den Ausdruck enthält, oder markieren Sie den Ausdruck. Drücken Sie STRG+., um das Menü Schnellaktionen und Refactorings aufzurufen. Wählen Sie Parameter einführen für {0} oder Parameter einführen für alle Vorkommen von {0} aus. Beide Optionen umfassen drei Flyoutoptionen, um (1) den aktualisierten Ausdruck an allen Aufrufstellen einzufügen, (2) eine neue Methode zu extrahieren und zu erstellen, die den Ausdruck zurückgibt und ein Argument an den Aufrufstellen hinzufügt oder (3) eine Überladung der Methode zu erstellen, die den Ausdruck enthält und die ursprüngliche Methode aufruft.

Einführen eines Parameters über das Menü „Schnellaktionen“

  • Es gibt einen neuen Befehl zum Nachverfolgen der Wertquelle, mit dem Sie Datenflussanalysen durchführen können. So können Sie ermitteln, wie bestimmte Werte an einem bestimmten Punkt übergeben wurden und wo sie übergeben werden können. Klicken Sie mit der rechten Maustaste auf einen bestimmten Member, und wählen Sie im Kontextmenü die Option „Wertquelle nachverfolgen“ aus.

Nachverfolgen der Wertquelle im Kontextmenü

  • Das Fenster zur Wertnachverfolgung wird geöffnet. Darin können Sie die Ergebnisse analysieren:

Fenster zum Nachverfolgen der Wertquelle

  • Wir haben eine Option zum Unterstreichen von Variablen hinzugefügt, die neu zugewiesen werden. Diese ist standardmäßig deaktiviert. Sie müssen sie unter „Extras“ > „Optionen“ > „Text-Editor“ > „C#“ oder „Basic“ > „Erweitert“ durch Auswahl von „Neu zugewiesene Variablen unterstreichen“ aktivieren.

Unterstreichen neu zugewiesener Variablen im Editor

  • Wir haben im Dialogfeld „Überschreibungen generieren“ eine Suchoption hinzugefügt, mit der Sie Member, die überschrieben werden sollen, schnell finden und auswählen können.

Suche im Dialogfeld „Überschreibungen generieren“

  • QuickInfo für <code>-XML-Tags behält jetzt Leerzeichen und CDATA-Blöcke bei. Zeigen Sie mit Ihrem Cursor auf das Element. In der QuickInfo werden dann die unterstützten Stile aus den XML-Kommentaren über Ihrem Code angezeigt.

QuickInfo für XML behält Leerzeichen bei

  • Im Fenster „Alle Verweise suchen“ werden Projekte mit mehreren Zielen jetzt gruppiert, um überflüssige Informationen auszublenden.

Bei „Alle Verweise suchen“ werden Projekte mit mehreren Zielen gruppiert

  • Es findet jetzt ein Refactoring statt, das sich wiederholende Typen in Visual Basic entfernt.
  • Durch „Zur Implementierung wechseln“ wird nicht mehr zu Membern mit abstrakten Deklarationen navigiert, die außerdem überschrieben werden.

Razor-Editor (ASP.NET Core)

  • Es gibt jetzt Hot Reload-Unterstützung in Razor-Dateien.

Hot Reload-Unterstützung für Razor-Dateien

  • Wir haben die Leistung des Razor-Editors erheblich verbessert.

  • Wir haben die Formatierung und den Einzug verbessert, um ihn zuverlässiger und deutlich schneller zu machen.

  • Wir haben neue Razor-Farben hinzugefügt! Sie können sie unter „Extras“ > „Optionen“ > „Umgebung“ > „Schriftarten und Farben“ anpassen.

  • TagHelpers werden jetzt farbig dargestellt und verfügen über Klassifizierungsunterstützung für QuickInfos und QuickInfos zur IntelliSense-Vervollständigung.

TagHelpers-Klassifizierungsunterstützung

  • Wir haben die Hervorhebung spitzer Klammern und die Navigation für Razor-Konstrukte verbessert.

  • Kommentare verfügen jetzt über automatische Vervollständigung, intelligenten Einzug, automatisches Einrücken von Kommentarfortsetzungen und Blockkommentarnavigation.

Hot Reload

In diesem Release werden die Funktionen der neuen Hot Reload-Funktion sowie der zugrunde liegende Mechanismus „Bearbeiten und fortfahren“ und der Debugger weiter verbessert.

Neuerungen:

  • Unterstützung für C++-Apps bei Verwendung des Debuggers: Es ist jetzt möglich, Hot Reload für native C++-Anwendungen durchzuführen, wenn sie unter dem Debugger (F5) mithilfe der Schaltfläche „Codeänderungen anwenden“ ausgeführt werden. Diese Funktion wird durch natives „Bearbeiten und fortfahren“ ermöglicht. Unterstützte Bearbeitungen finden Sie in unserer Dokumentation.

  • Unterstützung für .NET Hot Reload bei Ausführung ohne Debugger (STRG+F5) : In der ersten Vorschau haben wir .NET Hot Reload verfügbar gemacht, wenn .NET 6-Apps unter dem Debugger (F5) ausgeführt wurden. In diesem Release wird nun auch das Starten Ihrer App ohne Debugger über den STRG+F5-Mechanismus unterstützt, während gleichzeitig die Unterstützung für das Anwenden von Änderungen während der App-Ausführung beibehalten wird. Dieses Feature ist jetzt für Windows Forms-, WPF-, Console-, ASP.NET Core- und Blazor Server-Apps verfügbar. Zu diesem Zeitpunkt funktionieren andere App-Typen nicht oder sind möglicherweise nicht stabil. In weiteren Releases wird diese Funktionalität weiter verbessert.

  • Unterstützte Bearbeitungen: In diesem Release fügen wir auch Unterstützung für weitere Bearbeitungstypen sowohl für die Hot Reload-Funktion als auch für „Bearbeiten und fortfahren“ hinzu. Diese Verbesserungen umfassen Folgendes:

    • Eingeschränkte Unterstützung für das Bearbeiten von Razor-Dateien (zurzeit nur RAZOR-Dateien)
    • Hinzufügen, Aktualisieren oder Löschen benutzerdefinierter Attribute
    • Hinzufügen oder Aktualisieren von Datensatzstrukturen
    • Bearbeiten von Switch-Ausdrücken
    • Bearbeiten von Dateien mit #line-Anweisungen, einschließlich Änderungen an der Anweisung selbst
  • Hot Reload und „Bearbeiten und fortfahren“ mit mehreren Prozessen: Jetzt ist es möglich, sowohl die Hot Reload-Funktion als auch „Bearbeiten und fortfahren“ auch dann zuverlässig zu verwenden, wenn sie an mehrere Prozesse angefügt sind. Bisher wurde diese Funktion nicht vollständig unterstützt und funktionierte nicht immer ordnungsgemäß. Dies wurde jetzt korrigiert.

Vertrauenswürdige Speicherorte

  • Bei der Überarbeitung der Vertrauenseinstellungen haben wir die Überprüfung „Webmarkierung“ entfernt und ein Warndialogfeld hinzugefügt. Dieses wird beim Versuch zum Öffnen von Code (z. B. Dateien, Projekte oder Ordner) angezeigt, der zuvor nicht als vertrauenswürdig eingestuft wurde.
  • Code kann jetzt auf Ordner- oder Repositoryebene als vertrauenswürdig eingestuft werden. (Obwohl diese Option im Warndialogfeld angezeigt wird, ist der Repositorybesitzer noch nicht vollständig implementiert.)
  • Dieses Feature ist derzeit standardmäßig deaktiviert, kann aber über „Optionen“ > „Vertrauenseinstellungen“ > „Vertrauensrichtlinien erzwingen“ aktiviert werden.

XAML-Livevorschau

Die XAML-Livevorschau ist jetzt für WPF-Entwickler als erste Vorschau dieser neuen Oberfläche verfügbar. In der Livevorschau kann eine Desktop-App-Benutzeroberfläche erfasst und in ein angedocktes Fenster in Visual Studio eingefügt werden. So können Sie die App leichter mit XAML Hot Reload ändern und die Änderungen in Echtzeit anzeigen.

Livevorschau der Benutzeroberfläche von XAML-Desktop-Apps

Erste Schritte:

  • Stellen Sie sicher, dass „Extras“ > „Vorschaufeatures“ > „XAML-Livevorschau“ aktiviert ist (Standardeinstellung).
  • Nach der Aktivierung können Sie das Fenster jetzt über das Menü „Debuggen“ > „Windows“ > „XAML-Livevorschau“ verwenden. (Alternativ dazu können Sie die Suche verwenden und einfach „XAML-Livevorschau“ eingeben.)

Führen Sie als Nächstes Ihre App aus, und wählen Sie über die Benutzeroberfläche der Livevorschau aus, welches Fenster erfasst werden soll. Dies ist nur erforderlich, wenn Sie mehrere Fenster verwenden. Andernfalls wird Ihr Hauptfenster automatisch erfasst.

Nachdem die Oberfläche gestartet wurde, sind die folgenden Features verfügbar:

  • Scrollen und Zoomen: Sie können das Fenster, das die Benutzeroberfläche Ihrer Apps erfasst, schwenken und zoomen. Dadurch können Sie es an Ihre Anforderungen anpassen und entweder die vollständige App oder nur die Teile anzeigen, die Sie bearbeiten möchten. Das Schwenken und Scrollen funktioniert über ein Touchpad (Scrollen mit zwei Fingern), das Mausrad oder STRG+Klick, um den Inhalt zu ziehen.
  • Lineale: Sie können ein oder mehrere horizontale/vertikale Lineale hinzufügen, die Ihre ausgeführte App überlagern. Diese Linien können dann mit der Maus oder der Tastatur an die gewünschte Position verschoben werden. Verwenden Sie beim Verschieben von Linealen mit der Tastatur die Pfeiltasten für eine präzise Positionierung und STRG+Pfeiltaste für eine schnelle Positionierung. Sie können Lineale auch löschen, indem Sie sie auswählen (darauf klicken) und die ENTF-TASTE drücken.
  • Elementauswahl und Infotipps: Mit der Elementauswahl können Sie das XAML-Element, das Sie bearbeiten möchten, über dasselbe Feature auswählen, mit dem Sie möglicherweise durch die visuelle Livestruktur oder die In-App-Symbolleiste bereits vertraut sind. Nach der Auswahl können Sie auch das neue Feature „Infotipps“ aktivieren, um zusätzliche Informationen zum ausgewählten Element zu erhalten, z. B. Schriftarten, Farben oder Rand-/Abstandsinformationen. Wenn Sie die Elementauswahl verwenden, sollten Sie die Option „Vorschau für ausgewähltes Element anzeigen“ aktivieren (entweder über die Symbolleistenschaltfläche für die visuelle Livestruktur oder über „Debuggen“ > „Optionen“ > „Hot Reload-Einstellungen“), um zur Quell-XAML zu wechseln.
  • Fensterwechsel: Sie können steuern, welches Ihrer App-Fenster erfasst wird.

Dieses Feature funktioniert in dieser ersten Vorschauversion nur für WPF-Anwendungen, aber wir arbeiten daran, die Unterstützung in Zukunft für weitere App-Typen zu erweitern.

Frühe experimentelle Vorschau für Remotetests

Wir stellen eine sehr frühe experimentelle Vorschau zum Aktivieren der Ausführung von Tests in Remoteumgebungen wie Linux-Containern, WSL und über SSH-Verbindungen bereit. Auch wenn diese Funktion sehr hilfreich ist, bitten wir Sie um Ihre Geduld. Dieses Feature befindet sich noch in einem sehr frühen experimentellen Zustand, in dem wir Feedback sammeln. Möglicherweise stellen Sie nicht die gewohnte Reibungslosigkeit fest. Sie können sich vorstellen, dass es zahlreiche Nischenszenarien bezüglich der Kommunikation und Verwaltung einer verbundenen Umgebung über Visual Studio gibt. Hier sind einige Anforderungen für die Verwendung dieser experimentellen Version von Remotetests aufgeführt:

  • Sie müssen die erforderlichen Abhängigkeiten in Ihrer Zielumgebung installieren. Das heißt, wenn Ihre Tests für .NET 3.1 in einem Linux-Container ausgeführt werden sollen, müssen Sie sicherstellen, dass im Container .NET 3.1 über Ihr Dockerfile installiert ist. Eines Tages würden wir gerne eine Installationsfunktion erstellen, die eine reibungslose Übernahme Ihrer Testabhängigkeiten ermöglicht, aber vorerst überlassen wir den Großteil der Umgebungsbereitstellung der Spezifikation des Benutzers.
  • Planen Sie die Überwachung Ihres Verbindungsstatus mit der Remoteumgebung über den Bereich „Ausgabe“ > „Tests“. Wenn der Container beispielsweise beendet wurde, wird eine Meldung im Bereich „Ausgabe“ > „Tests“ angezeigt. Möglicherweise haben wir nicht alle Szenarien erfasst. Planen Sie daher eine Überprüfung der Ausgabe ein, um festzustellen, ob die Verbindung verloren gegangen ist. Insbesondere wenn der Ausgabebereich nicht auf „Test“ festgelegt ist, wird die Meldung möglicherweise nicht sofort angezeigt. Wir experimentieren noch mit dem optimalen Benachrichtigungsmodell für verloren gegangene Verbindungen, daher ist Feedback sehr willkommen! Wenn die Verbindung nicht mehr besteht, können Sie die Verbindung über die Dropdownliste für Remotetestumgebungen im Test-Explorer wieder auf Ihre lokale Umgebung zurücksetzen und dann erneut die Remoteumgebung auswählen, um die Verbindung wiederherzustellen.
  • Die experimentelle Vorschau ist derzeit nur für .NET-Tests verfügbar. Wir sind uns des Interesses an der Unterstützung von C++-Remotetestumgebungen bewusst und hoffen, diese letztlich ebenfalls bereitstellen zu können.

Wie kann ich Remotetests ausprobieren?

  • Offizielle Dokumente werden nach der Experimentierphase bereitgestellt. Hier finden Sie das, was Sie für den Anfang zum Testen benötigen.
  • Umgebungen werden über testenvironments.json im Stammverzeichnis Ihrer Projektmappe angegeben. Die JSON-Dateistruktur entspricht dem folgenden Schema:
{
    "version": "1", // value must be 1
    "environments": [
        { "name": "<unique name>", ... },
        ...
    ]
}
  • Lokale Containerverbindungen
    • Um eine Verbindung mit einem lokal ausgeführten Container herzustellen, muss Docker Desktop auf Ihrem lokalen Computer installiert sein. Aktivieren Sie optional die WSL2-Integration, um eine bessere Leistung zu erzielen.
    • Für ein Dockerfile kann die Umgebung in testEnvironments.json im Stammverzeichnis Ihrer Projektmappe angegeben werden:
          {
          "name": "<name>",
          "localRoot": "<path to local environment>", // optional
          "type": "docker",
          "dockerImage": "<docker image tag>",
          }
      
      Beispiel:
      {
      "version": "1",
      "environments": [
          {
          "name": "linux dotnet-core-sdk-3.1",
          "type": "docker",
          "dockerImage": "testenv"
          }
      ]
      }
      
    • Im Folgenden finden Sie ein Beispiel für ein Dockerfile zum Ausführen von Tests für .NET 3.1.
      FROM mcr.microsoft.com/dotnet/core/sdk:3.1
      
    • Erstellen Sie Ihren Container mithilfe des folgenden Befehls (einschließlich „.“ am Ende): docker build -t <docker image name> -f <path to Dockerfile> .
  • Lokale WSL2-Verbindungen
    • Sie müssen die WSL2-Integration auf Ihrem lokalen Computer aktivieren.
    • Die Umgebung kann in testEnvironments.json im Stammverzeichnis Ihrer Projektmappe dem folgenden Schema entsprechend angegeben werden:
      {
      "version": "1",
      "environments": [
          {
          "name": "WSL-Ubuntu",
          "type": "wsl",
          "wslDistribution": "Ubuntu"
          }
      ]
      }
      
  • SSH-Verbindungen
    • Wechseln Sie zu „Extras“ > „Optionen“ > Plattformübergreifend“ > „Verbindungs-Manager“, um SSH-Verbindungen hinzuzufügen oder zu entfernen. Wenn Sie „Hinzufügen“ auswählen, können Sie den Hostnamen, den Port und erforderliche Anmeldeinformationen eingeben.
    • Die Umgebung kann in testEnvironments.json im Stammverzeichnis Ihrer Projektmappe folgendermaßen angegeben werden:
      {
      "version": "1",
      "environments": [
          {
          "name": "ssh-remote",
          "type": "ssh",
          "remoteUri": "ssh://user@hostname:22"
          }
      ]
      }
      
  • Die aktive Umgebung wird über eine Dropdownliste in der Symbolleiste des Test-Explorers ausgewählt. Derzeit kann immer nur eine Testumgebung aktiv sein.

Dropdownliste für Remotetestumgebungen im Test-Explorer

  • Nachdem eine Umgebung ausgewählt wurde, werden Tests in der neuen Umgebung ermittelt und ausgeführt.

Tests werden in Remoteumgebungen ermittelt und ausgeführt

  • Jetzt können Sie Ihre Tests in der Remoteumgebung ausführen. (Die Möglichkeit zum Debuggen von Tests in Remoteumgebungen ist bald verfügbar!)

    Anzeigen von Testergebnissen aus der Remoteumgebung im Test-Explorer

  • Der Test-Explorer fordert Sie möglicherweise zur Installation einiger fehlender erforderlicher Umgebungskomponenten auf und versucht, diese zu installieren. Letztendlich überlassen wird den Großteil der Bereitstellung der Remoteumgebung jedoch der Spezifikation des Benutzers.

Aktualisierte Symbole

  • Aufgrund unserer Zielsetzung, die Benutzeroberfläche für Visual Studio 2022 zu erneuern, finden Sie in der gesamten IDE Symbole, die nach den Gesichtspunkten Konsistenz, Lesbarkeit und Bekanntheit aktualisiert wurden.

Beispiele für neue Symbole mit dunklem und hellem Hintergrund


17.0.0-pre.1.1 Visual Studio 2022 Version 17.0 Preview 1.1

Veröffentlicht: 24. Juni 2021

Probleme, die in diesem Release behandelt werden

  • Es wurde ein Problem behoben, durch das der Test-Explorer sehr langsam ausgeführt wurde.

Aus der Entwicklercommunity


17.0.0-pre.1.0 Visual Studio 2022 Version 17.0 Preview 1

Veröffentlicht: 17. Juni 2021

Zusammenfassung der Neuerungen in dieser Version von Visual Studio 2022 Version 17.0 Vorschau 1

64-Bit

  • „devenv.exe“ ist jetzt nur noch als 64-Bit-Version verfügbar.

IntelliCode

  • Automatische Vervollständigung für ganze Zeilen

.NET 6 SDK

  • Das .NET 6 SDK (Vorschau) ist in Visual Studio 2022 enthalten.
  • Dieses Release bietet grundlegende Unterstützung für .NET MAUI-Projekte. Vorübergehend müssen Sie die .NET MAUI-Workload getrennt von .NET 6 installieren. Weitere Informationen finden sie in der .NET MAUI-Installationsdokumentation.

Git-Tools

  • Die Möglichkeit, auf die Team Explorer-Git-Benutzeroberfläche zurückzuwechseln, wurde entfernt, wodurch die neue Git-Benutzeroberfläche das einzige verfügbare integrierte Tool ist.
  • Die Option zum Installieren der GitHub-Erweiterung wurde aus dem Visual Studio-Installer entfernt.

Unterstützung von Testtools

  • Neue Versionen der Testplattform ab 17.0 können keine generischen Tests und geordnete Tests ausführen. Diese spezifischen Features waren nur als Teil einer frühen Version von MSTestv1 enthalten und sind in MSTestv2 nicht enthalten. Wir sehen eine sehr geringe Nutzung dieser Features, und geordnete Tests werden jetzt nicht mehr als bewährte Testmethoden betrachtet.
  • Einige Testfunktionen sind in Version 17.0 Vorschau 1 nicht verfügbar, einschließlich Erstellen neuer TestSettings-Dateien und TestSettings-Editor. Testläufe können weiterhin TestSettings-Dateien verwenden. TestSettings wurde jedoch durch RunSettings ersetzt, und wir empfehlen Benutzern, zu verbesserter Leistung und Funktionalität zu migrieren. Weitere Informationen.
  • Unterstützung für codierte Benutzeroberflächentests und [Webauslastungstests](Cloud-based load testing service end of life | Azure DevOps Blog (microsoft.com)) wird in Version 17.0 Vorschau 1 nicht verfügbar sein, da wir noch an der Portierung dieser Funktionen in Visual Studio 2022 arbeiten. Wir planen, sie in nachfolgenden Vorschauversionen zu unterstützen, aber wir empfehlen Benutzern dringend, codierte Benutzeroberflächentests und Webauslastungstests nicht mehr zu verwenden. Diese Technologien wurden 2019 offiziell als veraltet eingestuft, und wir planen, sie aus dem Produkt zu entfernen, wenn wir die Auswirkungen auf Benutzer minimieren können.

Webtools

  • Auf der Zusammenfassungsseite der Veröffentlichungsfunktion gibt es jetzt Aktionen zum Starten/Beenden von Remotedebuggen und Profilerstellung unter dem Menü „...“ in der oberen rechten Ecke des Abschnitts „Hosting“.
  • Die Seite „Verbundene Dienste“ verfügt jetzt über eine Aktion zum Starten von Storage-Explorer.
  • Die Vorlage „ASP.NET Core Empty“, die in .NET 6 enthalten ist, verwendet das neue Paradigma „minimale APIs“, für das wir begonnen haben, Unterstützung hinzuzufügen.

Erweiterbarkeit

  • Das VS SDK enthält mehrere Breaking Changes, und Visual Studio 2019-Erweiterungen werden in Version 2022 nicht funktionieren. Weitere Informationen finden Sie in der VSSDK-Dokumentation.
  • VS SDK-Verweisassemblys werden nicht mehr im Ordner VSSDK\VisualStudioIntegration\Common\Assemblies installiert. Wenn Ihr Build auf diesen Assemblys angewiesen war, migrieren Sie Ihr Projekt, um stattdessen NuGet-Pakete zu verwenden. Für Offlineszenarien:
    1. Behalten Sie einen NuGet-Feed in der Organisation bei, aus dem die NuGet-Pakete wiederhergestellt werden.
    2. Checken Sie die Binärdateien ein.

Hot Reload

.NET Hot Reload ist jetzt in Visual Studio 2022 verfügbar, wenn Sie Ihre App mithilfe des Debuggers (F5) über die neue Schaltfläche „Codeänderungen anwenden“ ausführen. Mit Hot Reload können Sie Ihre ausgeführten Anwendungscodedateien bearbeiten und diese Codeänderungen in vielen Fällen anwenden, ohne zuerst die Ausführung der Apps anhalten zu müssen (wie zuvor für die Funktion „Bearbeiten und fortfahren“ erforderlich). Mit Hot Reload ist es unser Ziel, Ihnen so viele App-Neustarts wie möglich zwischen Bearbeitungen zu ersparen, damit Sie produktiver werden, indem Sie die Zeit reduzieren, die Sie mit dem Erstellen/Neustarten Ihrer Anwendung verbringen, während Sie ihre App weiter erstellen.

Weitere Informationen zur Funktionsweise von Hot Reload finden Sie in unserem aktuellen Blogbeitrag im .NET-Blog.

Neuer WPF XAML-Designer für .NET Framework

Der aktuelle WPF XAML-Designer für .NET Framework wird durch einen neuen WPF XAML-Designer für .NET Framework ersetzt, der auf derselben Architektur basiert, die für den WPF XAML-Designer für .NET (.NET Core) verwendet wird.

Die Visual Studio-Benutzeroberfläche sieht gleich aus, aber Drittanbieter von Steuerelementen müssen das neue Erweiterbarkeitsmodell unterstützen, da das vorherige Modell, das auf .design.dll und Microsoft.Windows.Design.Extensibility basiert, veraltet ist. Wenn Sie bereits eine .designtools.dll-Erweiterung für .NET (.NET Core) erstellt haben, funktioniert dieselbe Erweiterung für den neuen WPF XAML-Designer für .NET Framework.

Weitere Informationen zum Migrieren zum neuen Erweiterbarkeitsmodell finden Sie im folgenden Migrationsdokument.

Toolbox-Auffüllung für UWP-Erweiterungs-SDKs

UWP-Erweiterungs-SDKs müssen jetzt die Typen durch Auflisten in ihrer SdkManifest.xml-Datei explizit deklarieren, die in der Toolbox angezeigt werden sollen. Das Verhalten älterer Versionen von Visual Studio bleibt unverändert. Sie ignorieren die Liste der Steuerelemente im Manifest und enumerieren stattdessen dynamisch die Steuerelementtypen in den Assemblys des SDK auf.

Features, die noch nicht verfügbar sind

Im Vorschau 1-Release von Visual Studio 2022 müssen noch mehrere Features zu 64-Bit migriert werden und befinden sich daher noch nicht in der Vorschauversion. Diese Features sollen in zukünftigen Updates enthalten sein, und sie werden nicht aus der Visual Studio entfernt.

  • Web Live Preview
  • Instrumentierungsprofiler
  • Unterstützung für Azure Cloud Service-Projekt
  • T-SQL-Debugger
  • Webauslastungstest und TestController/TestAgent
  • Azure DataLake
  • Test der programmierten UI
  • DotFuscator
  • IncrediBuild-IDE-Integration
  • IntelliCode: Suchen und Ersetzen durch Beispiel

Probleme, die in diesem Release behandelt werden

Aus der Entwicklercommunity


Bekannte Probleme

Unter dem folgenden Link können Sie sich über alle offenen Probleme und verfügbaren Problemumgehungen in Visual Studio 2022 informieren.


Feedback und Vorschläge

Wir freuen uns auf Ihr Feedback! Informieren Sie uns über die Option Ein Problem melden in der oberen rechten Ecke im Installer oder direkt in der Visual Studio-IDE über mögliche Probleme. Die Feedback Icon Symbol befindet sich in der oberen rechten Ecke. Sie können einen Vorschlag zu einem Produkt einreichen oder Ihre Probleme in der Entwicklercommunity für Visual Studio nachverfolgen, in der Sie auch Fragen stellen und nach Antworten suchen sowie neue Features vorschlagen können. Über unseren Livechatsupport erhalten Sie zudem kostenlose Hilfe bei der Installation.


Blogs

Profitieren Sie von den Einblicken und Empfehlungen auf der Webseite mit Blogs zu Entwicklertools, um sich bei allen Releases auf dem neuesten Stand zu halten und Zugang zu ausführlichen Beiträgen zu zahlreichen Funktionen zu erhalten.


Verlauf der Versionshinweise zu Visual Studio 2022

Weitere Informationen bezüglich der früheren Versionen von Visual Studio 2022 finden Sie auf der Seite Verlauf der Versionshinweise zu Visual Studio 2022.


Seitenanfang