Aufbau eines VSIX-Pakets

Ein VSIX-Paket ist eine VSIX-Datei, die mindestens eine Visual Studio-Erweiterung sowie die Metadaten enthält, die Visual Studio zum Klassifizieren und Installieren der Erweiterungen verwendet. Diese Metadaten sind im VSIX-Manifest und in der [Content_Types].xml enthalten. Ein VSIX-Paket kann auch eine oder mehrere Extension.vsixlangpack-Dateien enthalten, um lokalisierten Setuptext zur Verfügung zu stellen, und kann zusätzliche VSIX-Pakete zum Installieren von Abhängigkeiten enthalten.

Das VSIX-Paketformat folgt dem Open Packaging-Konventionen (OPC) Standard. Das Paket enthält Binärdateien und unterstützende Dateien sowie eine [Content_Types].xml-Datei und eine VSIX-Manifestdatei. Ein VSIX-Paket kann die Ausgabe mehrerer Projekte oder sogar mehrerer Pakete mit eigenen Manifesten enthalten.

Hinweis

Die Namen der in VSIX-Paketen enthaltenen Dateien dürfen weder Leerzeichen noch Zeichen enthalten, die in URI (Uniform Resource Identifiers) reserviert sind, wie unter [ RFC2396 definiert. ]

Das VSIX-Manifest

Das VSIX-Manifest enthält Informationen zur zu installierenden Erweiterung und folgt dem VSX-Schema. Weitere Informationen finden Sie in der Referenz zum VSIX-Erweiterungsschema 1.0. Ein Beispiel für ein VSIX-Manifest finden Sie unter PackageManifest-Element (Stammelement, VSX-Schema).

Das VSIX-Manifest muss benannt extension.vsixmanifest werden, wenn es in einer ^.vsix*-Datei enthalten ist.

der Inhalt

Ein VSIX-Paket kann Vorlagen, Toolboxelemente, VSPackages oder eine andere Art von Erweiterung enthalten, die von Visual Studio.

Sprachpakete

Ein VSIX-Paket kann ein oder mehrere Extension.vsixlangpack-Dateien enthalten, um lokalisierten Text während der Installation zur Verfügung zu stellen. Weitere Informationen finden Sie unter Lokalisieren von VSIX-Paketen.

Abhängigkeiten und Verweise

Ein VSIX-Paket kann andere VSIX-Pakete als Verweise enthalten. Jedes dieser anderen Pakete muss ein eigenes VSIX-Manifest enthalten.

Wenn ein Benutzer versucht, eine Erweiterung mit Abhängigkeiten zu installieren, überprüft das Installationsprogramm, ob die erforderlichen Assemblys auf dem Benutzersystem installiert sind. Wenn die erforderlichen Assemblys nicht gefunden werden, zeigt Erweiterungen und Updates eine Liste der fehlenden Assemblys an.

Wenn das Erweiterungsmanifest mindestens ein Verweis-Element enthält, vergleicht Erweiterungen und Updates das Manifest jedes Verweises mit den Erweiterungen, die auf dem System installiert sind, und installiert die Erweiterung, auf die verwiesen wird, sofern sie noch nicht installiert ist. Wenn eine frühere Version einer Erweiterung, auf die verwiesen wird, installiert ist, wird sie durch die neuere Version ersetzt.

Wenn ein Projekt in einer Projektmappe mit mehreren Projektmappen einen Verweis auf ein anderes Projekt in derselben Projektmappe enthält, enthält das VSIX-Paket die Abhängigkeiten dieses Projekts. Sie können dieses Verhalten überschreiben, indem Sie den Verweis für das interne Projekt auswählen und dann im Eigenschaftenfenster die Eigenschaft In VSIX enthaltene Ausgabegruppen auf BuiltProjectOutputGroup festlegen.

Fügen Sie der Eigenschaft In VSIX enthaltene Ausgabegruppen hinzu, um Satelliten-DLLs aus Assemblys, auf die verwiesen wird, in das SatelliteDllsProjectOutputGroup VSIX-Paket ein hinzuzufügen.

Installationspfad

Während der Installation sucht Erweiterungen und Updates nach dem Inhalt des VSIX-Pakets in einem Ordner unter %LocalAppData%\Microsoft\VisualStudio\14.0\Extensions.

Standardmäßig gilt die Installation nur für den aktuellen Benutzer, da %LocalAppData% ein benutzerspezifisches Verzeichnis ist. Wenn Sie jedoch das AllUsers-Element des Manifests auf festlegen, wird die Erweiterung True unter installiert. \ VisualStudioInstallationFolder\Common7\IDE\Extensions und steht allen Benutzern des Computers zur Verfügung.

[Content_Types].xml

Die Datei [Content_Types].xml identifiziert die Dateitypen in der erweiterten VSIX-Datei. Visual Studio verwendet diese Datei während der Installation des Pakets, installiert jedoch nicht die Datei selbst. Weitere Informationen zu dieser Datei finden Sie unter Die Struktur der [Content_types].xml Datei.

Eine [Content_Types].xml ist für den OPC-Standard (Open Packaging-Konventionen erforderlich. Weitere Informationen zu OPC finden Sie auf der MSDN-Website unter OPC: A new standard for packaging your data (OPC: Ein neuer Standard zum Packen Ihrer Daten).