Anatomie einer Visual Studio-Erweiterung
Ein VSIX-Paket ist eine VSIX-Datei, die eine oder mehrere Visual Studio-Erweiterungen und die Metadaten enthält, die Visual Studio zum Klassifizieren und Installieren der Erweiterungen verwendet. Das VSIX-Paketformat folgt dem OPC-Standard (Open Packaging Conventions), was bedeutet, dass es von jedem Tool geöffnet werden kann, das ZIP-Dateien öffnen kann.
Ein Erweiterungsprojekt ist ein C#-Projekt mit einigen Extras, die es einzigartig machen. Das folgende Video untersucht ein Erweiterungsprojekt, um besser zu verstehen, wie Erweiterungsprojekte funktionieren:
Dateistruktur
Beim Erstellen neuer Erweiterungen mithilfe der VSIX Project w/Command-Vorlage (Community) sieht die Dateistruktur wie folgt aus:
Die vsixmanifest-Datei ist die Hauptdatei. Es handelt sich um eine XML-Datei, die Informationen zu der von Visual Studio verwendeten Erweiterung enthält. Alle Komponenten der Erweiterung werden in der vsixmanifest-Datei registriert. Dies ist die einzige obligatorische Datei in einem VSIX-Projekt.
In der Datei VSCommandTable.vsct werden Befehle deklariert. Es handelt sich um eine XML-Datei und enthält die Definitionen von Schaltflächenbefehlen, Menüs, Tastenkombinationen und vieles mehr. Die Datei kompiliert den Inhalt in einem BLOB in der Ausgabe .dll, die Visual Studio zum Erstellen der gesamten Befehlstabellenmenüstruktur verwendet. Diese Datei deklariert nur die Komponenten in der Befehlstabelle; es behandelt keine Befehlsaufrufe.
Die Datei *Package.cs ist die Package-Klasse, die der Einstiegspunkt für die meisten Erweiterungen ist. Hier finden Sie häufig Befehlshandler, Toolfenster, Optionsseiten, Dienste und andere registrierte Komponenten.
Kompilierung
Das Projekt wird in eine VSIX-Datei kompiliert, die sich im Ordner /bin/debug oder /bin/release befindet. Dies hängt von der aktuellen Lösungsbuildkonfiguration ab. Die Arbeitslast der Entwicklung der Visual Studio-Erweiterung bietet dedizierte MSBuild-Ziele und -Aufgaben zur Handhabung der VSIX-Projektvariante.
Wenn das VSIX-Projekt erstellt wird, wird es automatisch in der Experimentellen Instanz bereitgestellt. Dies kann in den VSIX-Projekteinstellungen gesteuert werden:
Experimentelle Instanz
Um Ihre Visual Studio-Entwicklungsumgebung vor nicht getesteten Anwendungen zu schützen, die sie möglicherweise ändern können, bietet das VSSDK einen experimentellen Raum, mit dem Sie experimentieren können. Sie entwickeln neue Anwendungen, indem Sie Visual Studio wie gewohnt verwenden, aber sie mit dieser experimentellen Instanz ausführen.
Jede Anwendung mit einem VSIX-Paket startet die experimentelle Visual Studio-Instanz im Debugmodus.
Wenn Sie die experimentelle Instanz von Visual Studio außerhalb einer bestimmten Lösung starten möchten, führen Sie den folgenden Befehl im Befehlsfenster aus:
devenv.exe /RootSuffix Exp
Weitere Erweiterbarkeitskonzepte finden Sie in den nützlichen Ressourcen, die für das Folgen dieses Toolkits nützlich sind.