VSIX-Erweiterungsschema 2.0-Referenz

Eine VSIX-Bereitstellungsmanifestdatei beschreibt den Inhalt eines VSIX-Pakets. Das Dateiformat wird durch ein Schema gesteuert. Version 2.0 dieses Schemas unterstützt das Hinzufügen von benutzerdefinierten Typen und Attributen. Das Schema des Manifests ist erweiterbar. Das Manifestladeprogramm ignoriert XML-Elemente und Attribute, die nicht verstanden werden.

Paketmanifestschema

Das Stammelement der XML-Manifestdatei ist <PackageManifest>. Es verfügt über ein einzelnes Attribut Version, bei dem es sich um die Version des Manifestformats handelt. Wenn wichtige Änderungen am Format vorgenommen werden, wird das Versionsformat geändert. In diesem Artikel wird das Manifestformat Version 2.0 beschrieben, das im Manifest angegeben wird, indem das Version Attribut auf den Wert "Version="2.0" festgelegt wird.

PackageManifest-Element

Innerhalb des <PackageManifest> Stammelements können Sie die folgenden Elemente verwenden:

  • <Metadata> - Metadaten und Werbeinformationen über das Paket selbst. Im Manifest ist nur ein Metadata Element zulässig.

  • <Installation> – In diesem Abschnitt wird definiert, wie dieses Erweiterungspaket installiert werden kann, einschließlich der Anwendungs-SKUs, in denen es installiert werden kann. Im Manifest ist nur ein einzelnes Installation Element zulässig. Ein Manifest muss über ein Installation Element verfügen, oder dieses Paket wird nicht in einer SKU installiert.

  • <Dependencies> – Hier wird eine optionale Liste der Abhängigkeiten für dieses Paket definiert.

  • <Assets> – Dieser Abschnitt enthält alle Ressourcen, die in diesem Paket enthalten sind. Ohne diesen Abschnitt wird in diesem Paket kein Inhalt angezeigt.

  • <AnyElement>* - Das Manifestschema ist flexibel genug, um alle anderen Elemente zuzulassen. Alle untergeordneten Elemente, die vom Manifestladeprogramm nicht erkannt werden, werden in der Erweiterungs-Manager-API als zusätzliche XmlElement-Objekte verfügbar gemacht. Mithilfe dieser untergeordneten Elemente können VSIX-Erweiterungen zusätzliche Daten in der Manifestdatei definieren, auf die Code in Visual Studio zur Laufzeit zugreifen kann. Siehe "Microsoft.VisualStudio.ExtensionManager.IExtension.AdditionalElements".

Metadata-Element

Dieser Abschnitt enthält die Metadaten für das Paket, seine Identität und Werbeinformationen. <Metadata> enthält die folgenden Elemente:

  • <Identity> – Definiert Identifikationsinformationen für dieses Paket und enthält die folgenden Attribute:

    • Id - Dieses Attribut muss eine eindeutige ID für das vom Autor ausgewählte Paket sein. Der Name sollte auf die gleiche Weise qualifiziert werden, wie CLR-Typen namespaces sind: Company.Product.Feature.Name. Das Id Attribut ist auf 100 Zeichen beschränkt.

    • Version – Definiert die Version dieses Pakets und dessen Inhalt. Dieses Attribut folgt dem CLR-Assemblyversionsverwaltungsformat: Major.Minor.Build.Revision (1.2.40308.00). Ein Paket mit einer höheren Versionsnummer gilt als Updates für das Paket und kann über die vorhandene installierte Version installiert werden.

    • Language - Dieses Attribut ist die Standardsprache für das Paket und entspricht den Textdaten in diesem Manifest. Dieses Attribut folgt der CLR-Gebietsschemacodekonvention für Ressourcenassemblys, z. B. "en-us", "fr-fr". Sie können angeben neutral , dass eine sprachneutrale Erweiterung deklariert wird, die in jeder Version von Visual Studio ausgeführt wird. Der Standardwert ist neutral.

    • Publisher - Dieses Attribut identifiziert den Herausgeber dieses Pakets, entweder ein Unternehmen oder einen einzelnen Namen. Das Publisher Attribut ist auf 100 Zeichen beschränkt.

  • <DisplayName> - Dieses Element gibt den benutzerfreundlichen Paketnamen an, der in der Erweiterungs-Manager-Benutzeroberfläche angezeigt wird. Der DisplayName Inhalt ist auf 50 Zeichen beschränkt.

  • <Description> – Dieses optionale Element ist eine kurze Beschreibung des Pakets und dessen Inhalte, die in der Erweiterungs-Manager-Benutzeroberfläche angezeigt werden. Der Description Inhalt kann beliebigen Text enthalten, aber er ist auf 1000 Zeichen beschränkt.

  • <MoreInfo> – Dieses optionale Element ist eine URL zu einer Onlineseite, die eine vollständige Beschreibung dieses Pakets enthält. Das Protokoll muss als HTTP angegeben werden.

  • <License> - Dieses optionale Element ist ein relativer Pfad zu einer Lizenzdatei (TXT, RTF), die im Paket enthalten ist.

  • <ReleaseNotes> - Dieses optionale Element ist entweder ein relativer Pfad zu einer Versionshinweisedatei, die im Paket (TXT, RTF) enthalten ist, oder eine URL zu einer Website, auf der die Versionshinweise angezeigt werden.

  • <Icon> - Dieses optionale Element ist ein relativer Pfad zu einer Bilddatei (png, bmp, jpeg, ico), die im Paket enthalten ist. Das Symbolbild sollte 32 x 32 Pixel (oder wird auf diese Größe verkleinert) und in der Listenansicht-BEnutzeroberfläche angezeigt. Wenn kein Icon Element angegeben ist, verwendet die Benutzeroberfläche einen Standardwert.

  • <PreviewImage> - Dieses optionale Element ist ein relativer Pfad zu einer Bilddatei (png, bmp, jpeg), die im Paket enthalten ist. Das Vorschaubild sollte 200 x 200 Pixel betragen und in der Detail-UI angezeigt werden. Wenn kein PreviewImage Element angegeben ist, verwendet die Benutzeroberfläche einen Standardwert.

  • <Tags> – Dieses optionale Element listet zusätzliche durch Semikolons getrennte Texttags auf, die für Suchhinweise verwendet werden. Das Tags Element ist auf 100 Zeichen beschränkt.

  • <GettingStartedGuide> - Dieses optionale Element ist entweder ein relativer Pfad zu einer HTML-Datei oder eine URL zu einer Website, die Informationen zur Verwendung der Erweiterung oder des Inhalts innerhalb dieses Pakets enthält. Dieses Handbuch wird als Teil einer Installation gestartet.

  • <AnyElement>* - Das Manifestschema ist flexibel genug, um alle anderen Elemente zuzulassen. Alle untergeordneten Elemente, die vom Manifestladeprogramm nicht erkannt werden, werden als Liste von XmlElement-Objekten verfügbar gemacht. Mithilfe dieser untergeordneten Elemente können VSIX-Erweiterungen zusätzliche Daten in der Manifestdatei definieren und zur Laufzeit aufzählen.

Installationselement

In diesem Abschnitt wird definiert, wie dieses Paket installiert werden kann, und die Anwendungs-SKUs, in denen es installiert werden kann. Dieser Abschnitt enthält die folgenden Attribute:

  • Experimental - Legen Sie dieses Attribut auf "true" fest, wenn Sie eine Erweiterung haben, die derzeit für alle Benutzer installiert ist, aber Sie eine aktualisierte Version auf demselben Computer entwickeln. Wenn Sie beispielsweise MyExtension 1.0 für alle Benutzer installiert haben, Aber Sie MyExtension 2.0 auf demselben Computer debuggen möchten, legen Sie "Experimental="true" fest. Dieses Attribut ist in Visual Studio 2015 Update 1 und höher verfügbar.

  • Scope - Dieses Attribut kann den Wert "Global" oder "ProductExtension" annehmen:

    • "Global" gibt an, dass die Installation nicht auf eine bestimmte SKU festgelegt ist. Dieser Wert wird beispielsweise verwendet, wenn ein Erweiterungs-SDK installiert wird.

    • "ProductExtension" gibt an, dass eine herkömmliche VSIX-Erweiterung (Version 1.0) für einzelne Visual Studio-SKUs installiert ist. Dies ist der Standardwert.

  • AllUsers – Dieses optionale Attribut gibt an, ob dieses Paket für alle Benutzer installiert wird. Dieses Attribut ist standardmäßig "false", der angibt, dass das Paket pro Benutzer ist. (Wenn Sie diesen Wert auf "true" festlegen, muss der Installationsbenutzer die Administratorrechtestufe erhöhen, um das resultierende VSIX zu installieren.

  • InstalledByMsi - Dieses optionale Attribut gibt an, ob dieses Paket von einem MSI-Paket installiert wird. Von einem MSI installierte Pakete werden von MSI (Programme und Features) und nicht vom Visual Studio-Erweiterungs-Manager installiert und verwaltet. Dieses Attribut ist standardmäßig "false", was angibt, dass das Paket nicht von einer MSI-Datei installiert wird.

  • SystemComponent - Dieses optionale Attribut gibt an, ob dieses Paket als Systemkomponente betrachtet werden soll. Systemkomponenten werden in der Erweiterungs-Manager-Benutzeroberfläche nicht angezeigt und können nicht aktualisiert werden. Dieses Attribut ist standardmäßig "false", was angibt, dass das Paket keine Systemkomponente ist.

  • AnyAttribute* – Das Installation Element akzeptiert einen offenen Satz von Attributen, die zur Laufzeit als Namens-Wert-Paarwörterbuch verfügbar gemacht werden.

  • <InstallationTarget> -Dieses Element steuert den Speicherort, an dem das VSIX-Installationsprogramm das Paket installiert. Wenn der Wert des Scope Attributs "ProductExtension" lautet, muss das Paket auf eine SKU abzielen, die eine Manifestdatei als Teil des Inhalts installiert hat, um ihre Verfügbarkeit für Erweiterungen anzukündigen. Das <InstallationTarget> Element weist die folgenden Attribute auf, wenn das Scope Attribut den expliziten oder Standardwert "ProductExtension" aufweist:

    • Id - Dieses Attribut identifiziert das Paket. Das Attribut folgt der Namespacekonvention: Company.Product.Feature.Name. Das Id Attribut kann nur alphanumerische Zeichen enthalten und ist auf 100 Zeichen beschränkt. Erwartete Werte:

      • Microsoft.VisualStudio.IntegratedShell

      • Microsoft.VisualStudio.Pro

      • Microsoft.VisualStudio.Premium

      • Microsoft.VisualStudio.Ultimate

      • Microsoft.VisualStudio.VWDExpress

      • Microsoft.VisualStudio.VPDExpress

      • Microsoft.VisualStudio.VSWinExpress

      • Microsoft.VisualStudio.VSLS

      • My.Shell.App

    • Version - Dieses Attribut gibt einen Versionsbereich mit den minimalen und maximal unterstützten Versionen dieser SKU an. Ein Paket kann die versionen der unterstützten SKUs detailliert darstellen. Die Versionsbereichsnotation lautet [10.0 - 11.0], wobei

      • [ - Mindestversion inklusive.

      • ] – maximale Version inklusive.

      • ( - Mindestversion exklusiv.

      • ) - maximale Version exklusiv.

      • Einzelne Version # – nur die angegebene Version.

      Wichtig

      Version 2.0 des VSIX-Schemas wurde in Visual Studio 2012 eingeführt. Um dieses Schema zu verwenden, müssen Sie Visual Studio 2012 oder höher auf dem Computer installiert haben und die VSIXInstaller.exe verwenden, die Teil dieses Produkts ist. Sie können auf frühere Versionen von Visual Studio mit einem Visual Studio 2012 oder höher VSIXInstaller abzielen, aber nur mithilfe der späteren Versionen des Installers.

      Visual Studio 2017-Versionsnummern finden Sie unter Visual Studio-Buildnummern und Veröffentlichungsdaten.

      Wenn Sie die Version für Visual Studio 2017-Versionen ausdrücken, sollte die Nebenversion immer 0 sein. Beispielsweise sollte Visual Studio 2017, Version 15.3.26730.0, als [15.0.26730.0,16.0) ausgedrückt werden. Dies ist nur für Visual Studio 2017 und höhere Versionsnummern erforderlich.

    • AnyAttribute* – Das <InstallationTarget> Element ermöglicht eine offene Gruppe von Attributen, die zur Laufzeit als Namens-Wert-Paarwörterbuch verfügbar gemacht werden.

Abhängigkeit-Element

Dieses Element enthält eine Liste von Abhängigkeiten, die dieses Paket deklariert. Wenn Abhängigkeiten angegeben sind, müssen diese Pakete (durch sie Ididentifiziert) zuvor installiert worden sein.

  • <Dependency> element – Dieses untergeordnete Element weist die folgenden Attribute auf:

    • Id - Dieses Attribut muss eine eindeutige ID für das abhängige Paket sein. Dieser Identitätswert muss mit dem <Metadata><Identity>Id Attribut eines Pakets übereinstimmen, von dem dieses Paket abhängig ist. Das Id Attribut folgt der Namespacekonvention: Company.Product.Feature.Name. Das Attribut kann nur alphanumerische Zeichen enthalten und ist auf 100 Zeichen beschränkt.

    • Version - Dieses Attribut gibt einen Versionsbereich mit den minimalen und maximal unterstützten Versionen dieser SKU an. Ein Paket kann die versionen der unterstützten SKUs detailliert darstellen. Die Versionsbereichsnotation lautet [12.0, 13.0], wobei:

      • [ - Mindestversion inklusive.

      • ] – maximale Version inklusive.

      • ( - Mindestversion exklusiv.

      • ) - maximale Version exklusiv.

      • Einzelne Version # – nur die angegebene Version.

    • DisplayName - Dieses Attribut ist der Anzeigename des abhängigen Pakets, das in UI-Elementen wie Dialogfeldern und Fehlermeldungen verwendet wird. Das Attribut ist optional, es sei denn, das abhängige Paket wird von MSI installiert.

    • Location - Dieses optionale Attribut gibt entweder den relativen Pfad innerhalb dieses VSIX zu einem geschachtelten VSIX-Paket oder eine URL zum Downloadspeicherort für die Abhängigkeit an. Dieses Attribut wird verwendet, um dem Benutzer beim Auffinden des erforderlichen Pakets zu helfen.

    • AnyAttribute* – Das Dependency Element akzeptiert einen offenen Satz von Attributen, die zur Laufzeit als Namens-Wert-Paarwörterbuch verfügbar gemacht werden.

Assets-Element

Dieses Element enthält eine Liste der <Asset> Tags für jedes Erweiterungs- oder Inhaltselement, das von diesem Paket angezeigt wird.

  • <Asset> - Dieses Element enthält die folgenden Attribute und Elemente:

    • Type - Typ der Erweiterung oder inhalte, die durch dieses Element dargestellt werden. Jedes <Asset> Element muss über ein einzelnes TypeElement verfügen, aber mehrere <Asset> Elemente haben möglicherweise dasselbe Type. Dieses Attribut sollte gemäß Namespacekonventionen als vollqualifizierter Name dargestellt werden. Die bekannten Typen sind:

      1. Microsoft.VisualStudio.VsPackage

      2. Microsoft.VisualStudio.MefComponent

      3. Microsoft.VisualStudio.ToolboxControl

      4. Microsoft.VisualStudio.Samples

      5. Microsoft.VisualStudio.ProjectTemplate

      6. Microsoft.VisualStudio.ItemTemplate

      7. Microsoft.VisualStudio.Assembly

        Sie können eigene Typen erstellen und ihnen eindeutige Namen zuweisen. Zur Laufzeit in Visual Studio kann Ihr Code diese benutzerdefinierten Typen über die Erweiterungs-Manager-API aufzählen und darauf zugreifen.

    • Path - der relative Pfad zu der Datei oder dem Ordner innerhalb des Pakets, das die Ressource enthält.

    • TargetVersion - der Versionsbereich, auf den die angegebene Ressource angewendet wird. Wird verwendet, um mehrere Versionen von Ressourcen an verschiedene Versionen von Visual Studio zu versenden. Erfordert, dass Visual Studio 2017.3 oder höher Wirkung hat.

    • AnyAttribute* – Ein offener Satz von Attributen, die zur Laufzeit als Namens-Wert-Paarwörterbuch verfügbar gemacht werden.

      <AnyElement>* - Jeder strukturierte Inhalt ist zwischen einem Anfangs- <Asset> und Endtag zulässig. Alle Elemente werden als Liste von XmlElement-Objekten verfügbar gemacht. VSIX-Erweiterungen können strukturierte typspezifische Metadaten in der Manifestdatei definieren und zur Laufzeit aufzählen.

Platzhaltersyntax für Erweiterungsmanifeste

Die .vsixmanifest Datei definiert den Build für das VSIX-Paket. Wenn ein Build angefordert wird, analysiert Visual Studio das Manifest, um ein Buildskript zu erstellen, das mithilfe von MSBuild erstellt wird. Sie können bestimmte Werte zur Erstellungszeit mithilfe von Platzhaltern festlegen, die ausgewertet werden, bevor das VSIX-Paket erstellt wird. Platzhalter werden verwendet, um auf Projekte zu verweisen, auf die im VSIX-Projekt verwiesen wird, MSBuild-Eigenschaften und MSBuild-Ziele, am häufigsten die Ziele, die Projektausgabegruppen darstellen. Projektausgabegruppen stellen Sammlungen von Dateien dar, die einem Projekt zugeordnet sind, und einige davon können in ein VSIX-Paket eingeschlossen werden. Beispiel: PkgDefProjectOutputGroup, BuiltProjectOutputGroup oder SatelliteDllsProjectOutputGroup.

Um auf eine Eigenschaft zu verweisen, die im VSIX-Projekt definiert ist, verwenden Sie dieselbe Syntax wie in der Projektdatei selbst. $(PropertyName)

Das spezielle Token %CurrentProject% verweist auf das VSIX-Projekt. Sie können auf andere Projekte verweisen, auf die in Ihrem VSIX-Projekt verwiesen wird, indem Sie das ProjectReference Element in einer VSIX-Projektdatei verwendenName, umgeben von Pipesymbolen (|). Beispielsweise |ProjectTemplate1|.

Sie können auf ein MSBuild-Ziel verweisen, indem Sie den Namen des Projekts (die Name Eigenschaft des Projektverweises im VSIX-Projekt) und dann den Zielnamen angeben. Wenn Sie beispielsweise auf das Version Ziel in einem der Projekte verweisen möchten, auf die in einem VSIX-Paket verwiesen wird, verwenden Sie die Syntax |ProjectName;Version|. Das Ziel sollte einen Outputs Wert aufweisen, der dem Kontext entspricht, in dem es verwendet wird. Das VSIX-Manifest enthält Orte, an denen die Ersetzung von Zeichenfolgenwerten und Elementauflistungen geeignet ist. Die Version-Zeichenfolge im Manifest kann beispielsweise wie folgt ersetzt werden:

<Identity Id="0000000-0000-0000-0000-000000000000" Version="|%CurrentProject%;GetVsixVersion|" Language="en-US" Publisher="Company" />

In diesem Fall sollte ein Ziel im VSIX-Projekt vorhanden sein GetVsixVersion , das eine einfache Zeichenfolge zurückgeben sollte. Ein auf ein Objekt angewendeter

<Target Name="GetVsixVersion" Outputs="$(_VsixVersion)">
  <PropertyGroup>
     <_VsixVersion>1.2.3.4</_VsixVersion>
  </PropertyGroup>
</Target>

Die Platzhalter werden zum Erstellen der richtigen VSIX-Manifestdatei mit dem VSIX-Projekt im SDK-Stil verwendet. Angenommen, Sie geben die Zielversion von Visual Studio mit der Eigenschaft "TargetFramework" an:

  • <TargetFramework>vs17.0</TargetFramework> // Target Visual Studio 2022 version 17.0
  • <TargetFramework>vs16.10</TargetFramework> // Target Visual Studio 2019 version 16.10

Basierend auf dem Zielframework transformiert der VSIX-Build die in der Erweiterungsmanifestdatei definierten Werte wie folgt. Für die folgende Syntax in der Manifestdatei:

<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="|%CurrentProject%;GetInstallationTargetVersion|" />

Die ausgabe, die im VSIX-Projekt MSBuild-Code verwendet wird:

    <InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0, 18.0)">
      <ProductArchitecture>amd64</ProductArchitecture>
    </InstallationTarget>

Und für den folgenden Code in einem Erweiterungsmanifest:

 <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="|%CurrentProject%;GetPrerequisiteTargetVersion|" DisplayName="Visual Studio core editor" />

Der Projektbuildcode lautet:

<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[17.0, 18.0)" DisplayName="Visual Studio core editor" />

Diese Funktionalität wird auch in den VSIX-Manifestdateien verwendet, die Visual Studio generiert, um auf Projektausgabegruppen durch den Namen des Projektverweises und dann den Namen des MSBuild-Ziels durch ein Semikolon zu verweisen. Die Zeichenfolge |%CurrentProject%;PkgDefProjectOutputGroup| bedeutet z. B. die Ausgabegruppe PkgDef, die auf die datei(n) verweist, die .pkgdef dem aktuellen VSIX-Projekt zugeordnet ist. Einige der ProjectOutputGroup in der Systembuilddatei "Microsoft.Common.CurrentVersion.targets " definierten Ziele werden in den von Visual Studio generierten VSIX-Manifesten verwendet. Zusätzliche Projektausgabegruppenziele, die im VSIX-Projekt verfügbar sind, werden in Microsoft.VsSDK.targets definiert. Die folgende Tabelle zeigt die definierten Projektausgabegruppen:

ProjectOutputGroup Beschreibung
BuiltProjectOutputGroup Die Dateien, die die Buildausgabe darstellen.
ContentFilesProjectOutputGroup Nicht binärdateien, die dem Projekt zugeordnet sind, z. B. HTML- und CSS-Dateien.
DebugSymbolsProjectOutputGroup Symboldateien (.pdb) zum Debuggen einer Erweiterung in der experimentellen Instanz von Visual Studio.
DocumentationFilesProjectOutputGroup XML-Dokumentationsdateien.
PkgDefProjectOutputGroup Paketdefinition () Datei(.pkgdefen).
PriFilesOutputGroup Die .pri Ressourcendateien, die einem UWP-Projekt zugeordnet sind.
SatelliteDllsProjectOutputGroup Satellitenassemblys für lokalisierte Ressourcen.
SDKRedistOutputGroup Die verteilbaren Ordner aus den SDKs, auf die von einem Projekt verwiesen wird.
SGenFilesOutputGroup Die GenerateSerializationAssemblies-Dateien, die durch das GenerateSerializationAssemblies-Ziel und die Aufgabe generiert werden.
SourceFilesProjectOutputGroup Quellcodedateien.
TemplateProjectOutputGroup Projektvorlagen.

Das Buildsystem füllt diese Ausgabegruppen mit den entsprechenden Dateien gemäß der Standardbuildlogik auf. In einem benutzerdefinierten Build können Sie den Projektausgabegruppen Elemente hinzufügen, indem Sie entweder das BeforeTargets Attribut für Ihr Ziel auf eines der oben genannten Ziele festlegen und im Ziel den Code für die oben aufgeführten Ziele als Beispiele für die Verwendung der BuiltProjectOutputGroupKeyOutput Aufgabe zum Festlegen der Ausgaben befolgen.

In erweiterten Szenarien können Sie auf ein Buildziel verweisen oder ein benutzerdefiniertes Ziel definieren, das Aufgerufen werden soll, und die hier beschriebene Syntax verwenden, um Werte für jedes Element im VSIX-Manifest einzufügen. Ein Ziel muss über den entsprechenden Ausgabeparameter verfügen, der der Erwartung des Kontexts entspricht, in dem es verwendet wird. Wenn eine Sammlung von Dateien, z. B. die erstellte Ausgabe eines Projekts, erwartet wird, wird ein Ziel benötigt, das die erforderlichen MSBuild-Elemente ausgibt. Die Projektausgabegruppe, die ziele erstellt Erwähnung zuvor erstellt wurde, kann als Beispiele verwendet werden, wenn Sie Ihre eigenen Ziele erstellen.

Beispielmanifest

<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
  <Metadata>
    <Identity Id="0000000-0000-0000-0000-000000000000" Version="1.0" Language="en-US" Publisher="Company" />
    <DisplayName>Test Package</DisplayName>
    <Description>Information about my package</Description>
    <MoreInfo>http://www.fabrikam.com/Extension1/</MoreInfo>
    <License>eula.rtf</License>
    <ReleaseNotes>notes.txt</ReleaseNotes>
    <Icon>Images\icon.png</Icon>
    <PreviewImage>Images\preview.png</PreviewImage>
  </Metadata>
  <Installation InstalledByMsi="false" AllUsers="false" SystemComponent="false" Scope="ProductExtension">
    <InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[11.0, 12.0]" />
  </Installation>
  <Dependencies>
    <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />
    <Dependency Id="Microsoft.VisualStudio.MPF.12.0" DisplayName="Visual Studio MPF 12.0" d:Source="Installed" Version="[12.0]" />
  </Dependencies>
  <Assets>
    <Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
  </Assets>
</PackageManifest>

Siehe auch