Bereitstellen von Erweiterungen für die SharePoint-Tools in Visual Studio

Erstellen Sie zum Bereitstellen einer SharePoint-Tools-Erweiterung ein Visual Studio-Erweiterungspaket (VSIX), das die Erweiterungsassembly und alle weiteren Dateien enthält, die Sie mit der Erweiterung verteilen möchten. Ein VSIX-Paket ist eine komprimierte Datei, die dem OPC (Open Packaging Conventions)-Standard folgt. VSIX-Pakete haben die Erweiterung ".vsix".

Nachdem Sie ein VSIX-Paket erstellt haben, können andere Benutzer die VSIX-Datei ausführen, um die Erweiterung zu installieren. Wenn ein Benutzer die Erweiterung installiert, werden alle Dateien im Ordner "%UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0\Extensions" installiert. Um die Erweiterung bereitzustellen, können Sie das VSIX-Paket auf die Visual Studio Gallery-Website (möglicherweise in englischer Sprache) hochladen. Außerdem können Sie das Paket auch auf andere Weise an Kunden verteilen, z. B. per Hosten des Pakets auf einer Netzwerkfreigabe oder einer anderen Website.

Weitere Informationen zur Erstellung von VSIX-Paketen und deren Bereitstellung in Visual Studio Gallery finden Sie unter VSIX Deployment.

Sie können ein VSIX-Paket erstellen, indem Sie in Visual Studio die Vorlage VSIX-Projekt verwenden oder das VSIX-Paket manuell erstellen.

Verwenden von VSIX-Projekten zum Erstellen von VSIX-Paketen

Sie können die vom Visual Studio 2010 SDK bereitgestellte Vorlage VSIX-Projekt verwenden, um VSIX-Pakete für SharePoint-Tools-Erweiterungen zu erstellen. Die Verwendung eines VSIX-Projekts bietet gegenüber der manuellen Erstellung eines VSIX-Pakets mehrere Vorteile:

  • Visual Studio erzeugt beim Erstellen des Projekts automatisch das VSIX-Paket. Aufgaben wie das Hinzufügen der Bereitstellungsdateien zum Paket und das Erstellen der Datei "[Content_Types].xml" für das Paket werden für Sie ausgeführt.

  • Sie können das VSIX-Projekt so konfigurieren, dass es im VSIX-Paket die Buildausgabe des Erweiterungsprojekts und anderer Dateien enthält, z. B. Projektvorlagen und Elementvorlagen.

Weitere Informationen zur Verwendung eines VSIX-Projekts finden Sie unter VSIX Project Template.

Organisieren der Projekte

Standardmäßig werden von VSIX-Projekten nur VSIX-Pakete generiert, keine Assemblys. Daher implementieren Sie i. d. R. keine SharePoint-Toolerweiterungen in einem VSIX-Projekt. Im Allgemeinen arbeiten Sie mit mindestens zwei Projekten:

  • Ein VSIX-Projekt.

  • Ein Klassenbibliotheksprojekt, von dem die Erweiterung implementiert wird.

Bei bestimmten Erweiterungstypen können Sie auch mit weiteren Projekten arbeiten:

Wenn Sie alle Projekte in dieselbe Visual Studio-Projektmappe einbinden, können Sie die Datei "source.extension.vsixmanifest" im VSIX-Projekt so ändern, dass sie die Buildausgabe der Klassenbibliotheksprojekte enthält.

Bearbeiten des VSIX-Manifests

Sie müssen die source.extension.vsixmanifest-Datei im VSIX-Projekt bearbeiten, um Einträge für alle Elemente einzuschließen, die Sie in der Erweiterung verwenden möchten. Wenn Sie die source.extension.vsixmanifest-Datei ändern, wird diese von Visual Studio in einem Designer geöffnet, der eine Benutzeroberfläche zum Bearbeiten des XML in der Datei bereitstellt. Weitere Informationen finden Sie unter VSIX Manifest Designer.

Für die folgenden Elemente müssen Einträge in der source.extension.vsixmanifest-Datei hinzugefügt werden:

  • Die Erweiterungsassembly.

  • Die Assembly, von der alle SharePoint-Befehle implementiert werden, die von der Erweiterung verwendet werden.

  • Alle Projektvorlagen oder Elementvorlagen, die der Erweiterung zugeordnet sind.

  • Ein benutzerdefinierter Assistent für eine Vorlage, die der Erweiterung zugeordnet ist.

In den folgenden Verfahren wird beschrieben, wie Sie der .vsixmanifest-Datei Einträge für jedes dieser Elemente hinzufügen.

So binden Sie die Erweiterungsassembly ein

  1. Doppelklicken Sie im VSIX-Projekt auf die source.extension.vsixmanifest-Datei, um die Datei im Designer zu öffnen.

  2. Klicken Sie im Abschnitt Inhalt des Editors auf die Schaltfläche Inhalte hinzufügen.

  3. Wählen Sie im Dialogfeld Inhalt hinzufügen im Listenfeldzum Auswählen eines Inhaltstyps die Option MEF-Komponente aus.

  4. Führen Sie unter Quelle auswählen einen der folgenden Schritte aus:

    • Wenn die Erweiterungsassembly aus einem Projekt erstellt wird, das in der gleichen Projektmappe wie das VSIX-Projekt enthalten ist, klicken Sie auf das Optionsfeld Projekt und wählen den Namen des Projekts im Listenfeld daneben aus.

    • Falls die Erweiterungsassembly als Datei im Projekt enthalten ist, klicken Sie auf das Optionsfeld Datei in Projekt und wählen die Assembly im Listenfeld daneben aus.

    • Falls sich die Erweiterungsassembly an einem anderen Speicherort befindet, klicken Sie auf das Optionsfeld Datei, und verwenden Sie dann das Dialogfeld Datei auswählen, um nach der Assembly zu suchen und diese auszuwählen.

  5. Klicken Sie auf OK.

So binden Sie eine SharePoint-Befehlsassembly ein

  1. Doppelklicken Sie im VSIX-Projekt auf die source.extension.vsixmanifest-Datei, um die Datei im Designer zu öffnen.

  2. Klicken Sie im Abschnitt Inhalt des Editors auf die Schaltfläche Inhalte hinzufügen.

  3. Wählen Sie im Dialogfeld Inhalt hinzufügen im Listenfeld zum Auswählen eines Inhaltstyps die Option Benutzerdefinierter Erweiterungstyp aus.

  4. Geben Sie im Textfeld Typ den Text SharePoint.Commands.v4 ein. Dieser Wert ist für alle Assemblys erforderlich, die SharePoint-Befehle enthalten.

  5. Führen Sie unter Quelle auswählen einen der folgenden Schritte aus:

    • Wenn die Befehlsassembly aus einem Projekt erstellt wird, das in der gleichen Projektmappe wie das VSIX-Projekt enthalten ist, klicken Sie auf das Optionsfeld Projekt und wählen den Namen des Befehlsprojekts im Listenfeld daneben aus.

    • Falls die Befehlsassembly als Datei im Projekt enthalten ist, klicken Sie auf das Optionsfeld Datei in Projekt und wählen die Assembly im Listenfeld daneben aus.

    • Falls sich die Befehlsassembly an einem anderen Speicherort befindet, klicken Sie auf das Optionsfeld Datei, und verwenden Sie dann das Dialogfeld Datei auswählen, um nach der Assembly zu suchen und diese auszuwählen.

  6. Klicken Sie auf OK.

So schließen Sie eine mit einem Projektvorlagen- oder Elementvorlagenprojekt des Visual Studio SDK erstellte Vorlage ein

  1. Doppelklicken Sie im VSIX-Projekt auf die source.extension.vsixmanifest-Datei, um die Datei im Designer zu öffnen.

  2. Klicken Sie im Abschnitt Inhalt des Editors auf die Schaltfläche Inhalte hinzufügen.

  3. Wählen Sie im Dialogfeld Inhalt hinzufügen im Listenfeld zum Auswählen eines Inhaltstyps den Eintrag Projektvorlage oder den Eintrag Elementvorlage aus.

  4. Aktivieren Sie unter Quelle auswählen das Optionsfeld Projekt, und wählen Sie im zugehörigen Listenfeld den Namen des Projekts aus.

  5. Klicken Sie auf OK.

  6. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten für das Projektvorlagen- oder Elementvorlagenprojekt, und klicken Sie auf Projekt entladen.

  7. Klicken Sie erneut mit der rechten Maustaste auf den Projektknoten, und klicken Sie auf BearbeitenNameIhresVorlagenprojekts**.csproj** oder auf BearbeitenNameIhresVorlagenprojekts**.vbproj**.

  8. Suchen Sie das folgende VSTemplate-Element in der Projektdatei.

    <VSTemplate Include="YourTemplateName.vstemplate">
    
  9. Ersetzen Sie dieses VSTemplate-Element durch das folgende XML.

    <VSTemplate Include="YourTemplateName.vstemplate">
      <OutputSubPath>SharePoint\SharePoint14</OutputSubPath>
    </VSTemplate>
    

    Das OutputSubPath-Element gibt weitere Ordner in dem Pfad an, unter dem die Projektvorlage beim Erstellen des Projekts erstellt wird. Mit den hier angegebenen Ordnern wird sichergestellt, dass die Elementvorlage nur dann verfügbar ist, wenn Kunden im Dialogfeld Neues Projekt hinzufügen auf den Knoten 2010 unter dem Knoten SharePoint klicken.

  10. Speichern und schließen Sie die Datei.

  11. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten für das Projektvorlagen- oder Elementvorlagenprojekt, und klicken Sie auf Projekt erneut laden.

So schließen Sie eine manuell erstellte Vorlage ein

  1. Fügen Sie im VSIX-Projekt einen neuen Ordner hinzu, der die Vorlage enthalten soll.

  2. Erstellen Sie in diesem neuen Ordner die folgenden Unterordner, und fügen Sie die Vorlagendatei (.zip) dann dem Ordner mit der Gebietsschema-ID hinzu.

         IhrVorlagenordner

              SharePoint

                   SharePoint14

                        Gebietsschema-ID

                             YourTemplateName.zip

    Wenn Sie z. B. eine Elementvorlage mit dem Namen "ContosoCustomAction.zip" verwenden, die das Gebietsschema für "Englisch (USA)" unterstützt, kann der vollständige Pfad beispielsweise "ItemTemplates\SharePoint\SharePoint14\1033\ContosoCustomAction.zip" lauten.

  3. Klicken Sie im Projektmappen-Explorer auf die Vorlagendatei (YourTemplateName.zip).

  4. Legen Sie im Fenster Eigenschaften die Build Action-Eigenschaft auf Inhalt fest.

  5. Doppelklicken Sie auf die Datei "source.extension.vsixmanifest", um die Datei im Designer zu öffnen.

  6. Klicken Sie im Abschnitt Inhalt des Editors auf die Schaltfläche Inhalte hinzufügen.

  7. Wählen Sie im Dialogfeld Inhalt hinzufügen im Listenfeld zum Auswählen eines Inhaltstyps den Eintrag Elementvorlage oder Projektvorlage aus.

  8. Klicken Sie unter Quelle auswählen auf das Optionsfeld Datei in Projekt, und wählen Sie den vollständigen Pfad der Vorlage im Listenfeld daneben aus. Beispiel: ItemTemplates\SharePoint\SharePoint14\1033\ContosoCustomAction.zip.

  9. Klicken Sie auf OK.

So schließen Sie einen Assistenten für eine Projektvorlage oder eine Elementvorlage ein

  1. Doppelklicken Sie im VSIX-Projekt auf die source.extension.vsixmanifest-Datei, um die Datei im Designer zu öffnen.

  2. Klicken Sie im Abschnitt Inhalt des Editors auf die Schaltfläche Inhalte hinzufügen.

  3. Wählen Sie im Dialogfeld Inhalt hinzufügen im Listenfeld Inhaltstyp auswählen die Option Vorlagen-Assistent aus.

  4. Führen Sie unter Quelle auswählen einen der folgenden Schritte aus:

    • Wenn die Assistenten-Assembly aus einem Projekt erstellt wird, das in der gleichen Projektmappe wie das VSIX-Projekt enthalten ist, klicken Sie auf das Optionsfeld Projekt und wählen den Namen des Projekts im Listenfeld daneben aus.

    • Falls die Assistenten-Assembly als Datei im Projekt enthalten ist, klicken Sie auf das Optionsfeld Datei in Projekt und wählen die Assembly im Listenfeld daneben aus.

    • Falls sich die Assistenten-Assembly an einem anderen Speicherort befindet, klicken Sie auf das Optionsfeld Datei, und verwenden Sie dann das Dialogfeld Datei auswählen, um nach der Assembly zu suchen und diese auszuwählen.

  5. Klicken Sie auf OK.

Verwandte exemplarische Vorgehensweisen

In der folgenden Tabelle sind exemplarische Vorgehensweisen aufgeführt, in denen veranschaulicht wird, wie Sie mit einem VSIX-Projekt verschiedene Typen von SharePoint-Toolerweiterungen bereitstellen.

Erweiterungstyp

Verwandte exemplarische Vorgehensweisen

Eine Erweiterung, die nur die Erweiterungsassembly enthält.

Exemplarische Vorgehensweise: Erweitern eines SharePoint-Elementtyps

Exemplarische Vorgehensweise: Erstellen einer SharePoint-Projekterweiterung

Exemplarische Vorgehensweise: Aufrufe in das SharePoint-Clientobjektmodell innerhalb einer Server-Explorererweiterung

Eine Erweiterung, die SharePoint-Befehle enthält.

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Bereitstellungsschritts für SharePoint-Projekte

Exemplarische Vorgehensweise: Erweitern des Server-Explorers für die Anzeige von Webparts

Exemplarische Vorgehensweise: Erstellen eines Projektelements "Websitespalte" mit einer Projektvorlage, Teil 2

Eine Erweiterung, die eine Visual Studio-Vorlage enthält.

Exemplarische Vorgehensweise: Erstellen eines Projektelements "Benutzerdefinierte Aktion" mit einer Elementvorlage, Teil 1

Exemplarische Vorgehensweise: Erstellen eines Projektelements "Websitespalte" mit einer Projektvorlage, Teil 1

Eine Erweiterung, die den Vorlagen-Assistenten enthält.

Exemplarische Vorgehensweise: Erstellen eines Projektelements "Benutzerdefinierte Aktion" mit einer Elementvorlage, Teil 2

Exemplarische Vorgehensweise: Erstellen eines Projektelements "Websitespalte" mit einer Projektvorlage, Teil 2

Manuelles Erstellen von VSIX-Paketen

Führen Sie die folgenden Schritte aus, wenn Sie das VSIX-Paket für die SharePoint-Tools-Erweiterung manuell erstellen möchten:

  1. Erstellen Sie die Datei "extension.vsixmanifest", die Datei "[Content_Types].xml" und die VSIX-Paketdatei (VSIX-Datei). Weitere Informationen finden Sie unter Anatomy of a VSIX Package und How to: Manually Package an Extension (VSIX Deployment).

  2. Fügen Sie dem VSIX-Paket die Erweiterungsassembly hinzu. Falls die Erweiterung einen SharePoint-Befehl enthält, müssen Sie auch die Assembly hinzufügen, die den SharePoint-Befehl im VSIX-Paket implementiert.

  3. Ändern Sie die Datei "extension.vsixmanifest":

    • Fügen Sie unter dem Content-Element ein MefComponent-Element hinzu. Legen Sie den Elementwert auf den relativen Pfad der Assembly fest, die die Erweiterung im VSIX-Paket implementiert. Weitere Informationen finden Sie unter MEFComponent Element (VSX Schema).

    • Wenn die Erweiterung einen SharePoint-Befehl enthält, der Aufrufe an das SharePoint-Serverobjektmodell durchführt, fügen Sie unter dem Content-Element ein neues CustomExtension-Element hinzu. Legen Sie den Elementwert auf den relativen Pfad der Assembly fest, die den SharePoint-Befehl im VSIX-Paket implementiert, und legen Sie das Type-Attribut auf den Wert SharePoint.Commands.v4 fest. Weitere Informationen finden Sie unter CustomExtension Element (VSX Schema).

    • Wenn die Erweiterung eine Projektvorlage oder eine Elementvorlage enthält, fügen Sie ein neues ProjectTemplate- oder ItemTemplate-Element unter dem Content-Element hinzu. Legen Sie den Wert des Elements auf den relativen Pfad des Ordners mit der Vorlage im VSIX-Paket fest. Weitere Informationen finden Sie unter ProjectTemplate Element (VSX Schema) und ItemTemplate Element (VSX Schema).

    • Wenn die Erweiterung einen benutzerdefinierten Assistenten für eine Projektvorlage oder eine Elementvorlage enthält, fügen Sie unter dem Content-Element ein neues Assembly-Element hinzu. Legen Sie den Elementwert auf den relativen Pfad der Assembly im VSIX-Paket fest, und legen Sie das AssemblyName-Attribut auf den vollständigen Assemblynamen (einschließlich Version, Kultur und öffentlichem Schlüsseltoken) fest. Weitere Informationen finden Sie unter Assembly Element (VSX Schema).

Beispiel

Im folgenden Beispiel wird der Inhalt einer extension.vsixmanifest-Datei für eine SharePoint-Toolerweiterung veranschaulicht. Die Erweiterung wird in der Assembly Contoso.ProjectExtension.dll implementiert. Die Erweiterung enthält die SharePoint-Befehlsassembly Contoso.ExtensionCommands.dll sowie eine Elementvorlage unter dem Ordner ItemTemplates im VSIX-Paket. In diesem Beispiel wird davon ausgegangen, dass sich beide Assemblys im gleichen Ordner wie die Datei "extension.vsixmanifest" im VSIX-Paket befinden.

<?xml version="1.0" encoding="utf-8"?>
<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      Version="1.0.0" xmlns="https://schemas.microsoft.com/developer/vsx-schema/2010">
  <Identifier Id="CustomActionProjectItem.Contoso.b1d75407-01bd-459d-9d04-d12e9113af49">
    <Name>Custom Action Project Item</Name>
    <Author>Contoso</Author>
    <Version>1.0</Version>
    <Description xml:space="preserve">A SharePoint project item that represents a custom action.</Description>
    <Locale>1033</Locale>
    <SupportedProducts>
      <VisualStudio Version="10.0">
        <Edition>Pro</Edition>
      </VisualStudio>
    </SupportedProducts>
    <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.0" />
  </Identifier>
  <References />
  <Content>
    <MefComponent>Contoso.ProjectExtension.dll</MefComponent>
    <CustomExtension Type="SharePoint.Commands.v4">Contoso.ExtensionCommands.dll</CustomExtension>
    <ItemTemplate>ItemTemplates</ItemTemplate>
  </Content>
</Vsix>

Siehe auch

Konzepte

Erweitern des SharePoint-Projektsystems

Aufrufe in die SharePoint-Objektmodelle

Weitere Ressourcen

Erweitern des SharePoint-Verbindungsknotens im Server-Explorer

Debuggen von Erweiterungen für die SharePoint-Tools in Visual Studio