VisualStudio.Extensibility ist ein neues Framework zur Entwicklung von Visual Studio-Erweiterungen, die vor allem außerhalb der IDE ausgeführt werden, um Leistung und Zuverlässigkeit zu verbessern. Es verfügt über eine moderne, asynchrone API, die optimiert und sorgfältig entwickelt wird, um die Produktivität der Entwickler zu maximieren. VisualStudio.Extensibility befindet sich in der aktiven Entwicklung und ist als Vorschau verfügbar.
Mit der aktuellen Vorschau können Sie eine vielzahl von Erweiterungen für Visual Studio entwickeln, einschließlich, aber nicht beschränkt auf:
Erstellen von Befehlen
Arbeiten mit Code oder Text im Editor
Anzeigen von Eingabeaufforderungen oder Dialogfeldern für den Benutzer
Erstellen von Debugger-Visualisierungen
VisualStudio.Extensibility zielt darauf ab, viele der Probleme zu beheben, die Entwickler beim Verwenden und Schreiben von Erweiterungen in Visual Studio haben. Das Schreiben von Erweiterungen mit VisualStudio.Extensibility bietet die folgenden Vorteile:
Höhere Zuverlässigkeit: Visual Studio bleibt reaktionsfähig und stürzt nicht ab, wenn eine Erweiterung abstürzt oder hängt.
reduzierte API-Komplexität: VisualStudio.Extensibility hat vereinfachte Architektur, konsistente APIs und klare Dokumentation.
Hot-Loading-Funktionalität: Visual Studio muss nicht neu gestartet werden, wenn Erweiterungen installiert werden.
Schließlich können Sie das VisualStudio.Extensibility SDK verwenden, um jede Erweiterung zu schreiben, die Sie mit dem Visual Studio SDK schreiben können. Bis zu diesem Zeitpunkt können Sie jedoch Situationen feststellen, in denen die in Ihrer Erweiterung benötigte Funktionalität noch nicht in VisualStudio.Extensibility verfügbar ist. In diesem Fall können Sie visualStudio.Extensibility SDK zusammen mit Visual Studio SDK verwenden, das in einem Prozess ausgeführt wird, um alle Featurelücken abzudecken. Weitere Informationen finden Sie unter In-Proc-Erweiterungen.
Die neuesten Informationen zu VisualStudio.Extensibility finden Sie im VSExtensibility GitHub-Repository unter Ankündigungen.
Erfahren Sie mehr über die Implementierungsdetails des VisualStudio.Extensibility SDK.
Installieren von VisualStudio.Extensibility
Die aktuelle VisualStudio.Extensibility Preview funktioniert mit Visual Studio 2022, Version 17.9 Preview 1 oder höher, wobei die Visual Studio extension development Workload installiert werden muss.
Loslegen
Die folgenden Artikel helfen Ihnen dabei, sich zu orientieren und zu beginnen"
Um zu verstehen, wie Sie mit VisualStudio.Extensibility arbeiten, empfehlen wir ein genaues Verständnis von Asynchrone Programmierung mit Async und Await und Abhängigkeitsinjektion. Darüber hinaus basiert die Benutzeroberfläche in VisualStudio.Extensibility auf Windows Presentation Foundation (WPF), sodass Sie die WPF-Dokumentationüberprüfen möchten.
Informationen zum Erstellen Ihres mentalen Modells zur Funktionsweise von Visual Studio-Erweiterungen finden Sie in Teilen einer neuen Visual Studio-Erweiterung, um mehr über die Architektur einer Erweiterung zu erfahren. Darüber hinaus können Sie sich über die Abhängigkeitsinjektion informieren, die verwendet wird, um Komponenten zwischen Komponenten einer Erweiterung zu teilen.
Wann und wo sollte Ihre Erweiterung in der IDE angezeigt werden? Visual Studio-Erweiterungen werden in der IDE angezeigt, wenn bestimmte Bedingungen erfüllt sind. Informationen dazu, wie und wann Ihre Erweiterung in der IDE angezeigt wird, finden Sie unter regelbasierte Aktivierungseinschränkungen.
Visual Studio-Erweiterungen stellen ihre Funktionen Visual Studio über Beiträge zur Verfügung. Weitere Informationen finden Sie unter Beiträge.
Erfahren Sie mehr über das Remote-UI- Modell, das in der VisualStudio.Extensibility verwendet wird.
Überblicke
Lesen Sie eine Übersicht über die Bereiche des SDK, die Sie möglicherweise für Ihre Erweiterungsentwicklungsprojekte benötigen.
Erstellen Sie Befehle, und machen Sie sie benutzern in der IDE verfügbar, siehe Befehle.
Arbeiten Sie mit den Inhalten von Dateien und Dokumenten, siehe Editor-Erweiterungen.
Arbeiten Sie mit der In-Memory-Darstellung dieser Dokumente; siehe Dokumente.
Verwenden Sie das Ausgabefenster in einer Erweiterung; siehe Ausgabefenster.
Arbeiten Sie mit ToolFenstern, andockbaren Fenstern innerhalb der Visual Studio-IDE; siehe ToolFenster.
Verwenden Sie Eingabeaufforderungen mit anpassbaren Schaltflächen, um mit dem Benutzer zu interagieren, siehe Benutzeraufforderungen.
Verwenden von Dialogfeldern mit benutzerdefinierter Benutzeroberfläche für die Interaktion mit dem Benutzer, siehe Dialogfelder
Erstellen Sie benutzerdefinierte Datenvisualisierungen beim Debuggen, siehe Debugger-Visualisierungen
Abfragen oder Ändern von Informationen zu Projekten und Lösungen finden Sie unter Project Query
Definieren, Lesen und Aktualisieren von Einstellungen finden Sie unter Einstellungen
Um zusätzliche Sprachunterstützung zu erhalten, arbeiten Sie mit Sprachservern/LSP. Weitere Informationen finden Sie unter Language Server Provider.
Beispiele und Tutorials
Sie finden eine Visual Studio-Lösung, die alle Beispiele in Samples.slnenthält.
Zeigt, wie Sie Text oder Code in den Code-Editor einfügen, wie Sie einen Befehl mit einer bestimmten Aktivierungsbedingung konfigurieren und wie Sie eine Ressourcendatei für die Lokalisierung verwenden. Siehe auch das Tutorial "Erstellen Ihrer einfachen Erweiterung".
Zeigt, wie mehrere Komponenten innerhalb einer Erweiterung interagieren können und wie verschiedene Bereiche von Visual Studio erweitert werden können.
Zeigt, wie Sie Visual Studio SDK-Dienste über .NET-Abhängigkeitseinfügung nutzen und VisualStudio.Extensibility-APIs für Befehle, Eingabeaufforderungen und Statusberichte verwenden.
Zeigt, wie Sie mithilfe der Remote-UI einen Debugger Visualizer erstellen, um Übereinstimmungen mit regulären Ausdrücken zu visualisieren, die in einem modalen Dialogfeld gestartet werden.
Zeigt, wie Sie eine Anbietererweiterung für den Rust-Sprachserver erstellen, die IntelliSense und QuickInfos hinzufügt, wenn eine Rust-Datei geöffnet wird.
Experimentelle APIs und bruchbrechende Änderungen
Ab unserer Version 17.9 sind wir bereit, die meisten unserer APIs als stabil zu bezeichnen. Das heißt, wir planen keine wesentlichen Änderungen an diesen APIs. Jede grundlegende Änderung, wie zum Beispiel solche, die durch Benutzerfeedback zur Benutzerfreundlichkeit angestoßen wurden, wird im Voraus auf unserer Seite Breaking Changes mit ausreichendem Hinweis bekanntgegeben.
Es gibt einige unserer APIs, die dieses Stabilitätsniveau aus einem von mehreren Gründen noch nicht erfüllen:
Der Featurebereich ist neu und zusätzliche Features und Änderungen werden in zukünftigen Versionen erwartet.
Die API ist neu und wir möchten Das Benutzerfeedback in das Design integrieren, bevor sie stabil markiert wird.
Wir haben Feedback erhalten, dass eine bestimmte API schwer zu verwenden ist, daher planen wir, sie in zukünftigen Versionen zu aktualisieren.
Diese APIs werden explizit mithilfe des attributs [Experimental] bezeichnet, um Erweiterungsautoren dabei zu helfen, ihre Erweiterungen mit Vertrauen in das SDK zu erstellen.
Weitere Informationen, einschließlich der Verwendung experimenteller APIs, finden Sie auf unserer Seite "Experimentelle APIs".For more information, including how to use experimental APIs, see our Experimental APIs page.
Bekannte Probleme
Wir freuen uns über Ihr Feedback und Ihre Fehlerberichte in unserem Issues Tracker, und wir arbeiten daran, alle Im SDK gefundenen Probleme zu beheben.
Besuchen Sie unsere Seite "Bekannte Probleme", um Informationen zu aktuellen bekannten Problemen zu finden.
Wir suchen aktiv Feedback und Engagement. Die Vorschauphase ist ein guter Zeitpunkt, um Community-Input zu erhalten, um uns dabei zu helfen, Probleme und Chancen zu erkennen. Sie können Feedback geben und Fehler in unserem Fehlerverfolgungs-Systemmelden.