Anforderungen für die Pipelineentwicklung
Damit Pipelinesegmente und Add-Ins ermittelt und aktiviert werden können, müssen sie bestimmte Voraussetzungen im Hinblick auf Umfang, Attribute und Verzeichnisstruktur erfüllen.
Pipelinesegmente und Assemblys
Die Add-Ins, Verträge und Ansichten müssen öffentlich sein. Adapter und ihre Konstruktoren können intern sein.
Pipelinesegmente sind normalerweise in ihrer eigenen Assembly enthalten, Sie können jedoch folgende Segmente in derselben Assembly kombinieren:
Hostansichten von Add-Ins und Add-In-seitige Ansichten.
Hostseitige Adapter und Add-In-seitige Adapter.
Host- und Add-In-seitige Adapter können nur in derselben Assembly kombiniert werden, wenn auch die Ansichten in derselben Assembly kombiniert werden.
Wenn Sie ein Segment auf einer Seite der Pipeline mit dem Gegenstück auf der anderen Seite der Pipeline kombinieren, z. B. die Hostansichten von Add-Ins mit den Add-In-Ansichten, müssen Sie diese Assembly auf beiden Seiten der Pipeline für dieses Segment bereitstellen.
Wenn Sie keine Ansichten in derselben Assembly kombinieren, können Sie den Host mit der Hostansicht des Add-Ins in derselben Assembly kombinieren.
Attributanforderungen
Die folgenden Pipelinesegmente erfordern Attribute für die Klassen, von denen sie definiert werden:
Add-Ins erfordern AddInAttribute.
Verträge erfordern AddInContractAttribute.
Add-In-Ansichten erfordern AddInBaseAttribute.
Add-In-seitige Adapter erfordern AddInAdapterAttribute.
Hostseitige Adapter erfordern HostAdapterAttribute.
Die Hostansicht des Add-In-Pipelinesegments erfordert kein Attribut, da dieses Objekt an die AddInStore.FindAddIns(Type, String, String[])-Methode übergeben wird und daher nicht ermittelt werden muss.
In der folgenden Abbildung werden die Pipelinesegmente mit ihren erforderlichen Attributen gezeigt.
Add-In-Modell mit erforderlichen Attributen für Typen
Anforderungen für das Pipelineverzeichnis
Damit .NET Framework Pipelinesegmente finden und Add-Ins aktivieren kann, müssen die Pipelinesegmente in einem bestimmten Verzeichnis abgelegt werden. Die angegebenen Verzeichnisnamen sind obligatorisch, es muss jedoch keine Groß-/Kleinschreibung beachtet werden. Die einzigen Namen, die nicht angegeben werden, sind der Name des Pipelinestammverzeichnisses (den Sie für die Ermittlungsmethoden angeben) und die Namen der Unterverzeichnisse, in denen die Add-Ins enthalten sind. Alle angegebenen Segmentnamen müssen Unterverzeichnisse auf derselben Ebene unterhalb des Pipelinestammverzeichnisses sein.
Diese Verzeichnisanforderungen werden in der folgenden Abbildung verdeutlicht.
Erforderliche Verzeichnisse für die Add-In-Entwicklung
In der folgenden Tabelle wird die erforderliche Verzeichnisstruktur beschrieben.
Verzeichnis |
Beschreibung |
---|---|
Pipelinestammverzeichnis |
Das Verzeichnis, in dem die Unterverzeichnisse der Pipelinesegmente enthalten sind. Es gibt keinen erforderlichen Namen für dieses Verzeichnis, das sich an einem beliebigen Speicherort befinden kann. Ein Beispiel: ..\Pipeline |
AddIns |
Optional. Das Verzeichnis, in dem eines oder mehrere Unterverzeichnisse enthalten sind, von denen jedes ein Add-In enthält. Dieses Verzeichnis muss den Namen AddIns haben. Beispiel: ..\Pipeline\AddIns Add-Ins können auch an anderen Speicherorten im System abgelegt werden. |
AddInSideAdapters |
Das Verzeichnis, in dem die Assembly mit den Add-In-seitigen Adaptern enthalten ist. Dieses Verzeichnis muss den Namen AddInSideAdapters haben. Beispiel: ..\Pipeline\AddInSideAdapters |
AddInViews |
Das Verzeichnis, in dem die Assembly mit den Add-In-Ansichten enthalten ist. Dieses Verzeichnis muss den Namen AddInViews haben. Beispiel: ..\Pipeline\AddInViews |
Contracts |
Das Verzeichnis, in dem die Assembly mit Verträgen enthalten ist. Dieses Verzeichnis muss den Namen Contracts haben. Beispiel: ..\Pipeline\Contracts |
HostSideAdapters |
Das Verzeichnis, in dem die Assembly mit hostseitigen Adaptern enthalten ist. Dieses Verzeichnis muss den Namen HostSideAdapters haben. Beispiel: ..\Pipeline\HostSideAdapters |
Die AddInStore.Update-Methode und die AddInStore.Rebuild-Methode haben Überladungen, die eine Zeichenfolgenvariable annehmen, die das Pipelinestammverzeichnis oder einen PipelineStoreLocation-Wert darstellt. Durch diese Methoden werden die verfügbaren Add-Ins und Pipelinesegmente im System ermittelt und die zugehörigen, in einem Informationsspeicher zwischengespeicherten Informationen verwaltet. Weitere Informationen über die Ermittlungsmethoden finden Sie unter Ermitteln von Add-Ins.
Die Hostanwendung und die Hostansicht des Add-In-Pipelinesegments werden normalerweise im selben Verzeichnis bereitgestellt, das sich an einem beliebigen Ort befinden kann. Die Hostanwendung erfordert einen Verweis auf die Hostansicht des Add-In-Segments, das das zu aktivierende Add-In darstellt.
Die Pipeline kann sich an einem beliebigen Speicherort befinden, einschließlich der Verzeichnisstruktur der Visual Studio-Projektmappe. Sie müssen die Pipelinesegmente in ihre Verzeichnisse innerhalb der Pipeline kopieren. Das Pipelineverzeichnis und seine Unterverzeichnisse sind für mehrere Pipelines ausgelegt. Weitere Informationen über die verschiedenen Pipelineszenarien finden Sie unter Szenarien für Add-In-Pipelines.
Add-Ins an anderen Speicherorten
Es ist nicht erforderlich, Add-Ins in der Pipelineverzeichnisstruktur abzulegen. Wenn sie sich nicht in der Pipelineverzeichnisstruktur befinden, müssen Sie die AddInStore.UpdateAddIns-Methode oder die RebuildAddIns-Methode aufrufen, die den Pfad zum jeweiligen Add-In-Verzeichnis als Parameter akzeptiert.
Sie müssen auch den addInPaths-Parameter einschließen, wenn Sie die AddInStore.FindAddIns-Methode aufrufen.
Wenn die Hostanwendung die Pfade und vollständigen Typnamen ihrer Add-Ins kennt, können Sie mithilfe der FindAddIn-Methode ein bestimmtes Add-In suchen, wodurch keine Abfragen zur Pipelineverzeichnisstruktur ausgeführt werden müssen. Eine Pipelineverzeichnisstruktur ist jedoch trotzdem erforderlich.
Verweise auf Pipelinesegmente in Visual Studio
Wenn Sie einem Projekt einen Verweis auf ein anderes Pipelinesegment hinzufügen – beispielsweise erfordert der Add-In-seitige Adapter einen Verweis auf das Vertragssegment – erstellen Sie einen Verweis auf das Projekt dieses Segments und nicht auf dessen Assembly. In diesem Beispiel würde der Verweis zum Vertragsprojekt führen. Ein Projektverweis verhindert, dass Assemblys, auf die verwiesen wird, in der Pipeline bereitgestellt werden, da dies zu Konflikten führen kann. Konflikte werden außerdem verhindert, indem Sie auf das lokale Kopieren von Dateien verzichten.
So fügen Sie einen Projektverweis hinzu
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Verweise, und wählen Sie dann Verweis hinzufügen aus.
Wählen Sie auf der Registerkarte Projekte das gewünschte Projekt aus, und klicken Sie auf OK.
Klicken Sie unter dem Ordner Verweise auf den Projektverweis, den Sie gerade hinzugefügt haben.
Legen Sie in den Verweiseigenschaften die Einstellung Lokale Kopie auf False fest.
Erforderliche Verweise
In der folgenden Tabelle sind die Pipelinesegmente aufgeführt, die Assemblyverweise auf System.AddIn.dll und System.Contract.dll erfordern. Einige Segmente erfordern auch Verweise auf andere kompilierte Segmente.
Pipelinesegment |
Assembly- und Projektverweise |
Namespace- und Typverweise |
---|---|---|
Vertrag |
System.AddIn.dll System.AddIn.Contract.dll |
System.AddIn.Pipeline System.AddIn.Contract |
Add-In-Ansicht |
System.AddIn.dll |
System.AddIn.Pipeline |
Add-In-seitiger Adapter |
System.AddIn.dll System.AddIn.Contract.dll Add-In-Ansichtssegment Vertragssegment |
System.AddIn.Pipeline |
Hostseitiger Adapter |
System.AddIn.dll System.AddIn.Contract.dll Hostansichtssegment Vertragssegment |
System.AddIn.Pipeline |
Host |
System.AddIn.dll Hostansichtssegment |
System.AddIn.Hosting Hostansicht |
Add-In |
System.AddIn.dll Add-In-Ansichtssegment |
System.AddIn Add-In-Ansicht |
Für die Hostansicht des Add-Ins ist anders als für die Hostanwendung kein Verweis erforderlich.
Bereitstellen für die Pipeline in Visual Studio
In Visual Studio können Sie Pipelinesegmente in die Pipelineverzeichnisstruktur integrieren, indem Sie den Ausgabebuildpfad ändern.
So stellen Sie die Pipeline in Visual Studio bereit
Zeigen Sie im Menü Extras auf die Eigenschaften des Projekts, und wählen Sie dann die Registerkarte Erstellen aus.
Ändern Sie den Ausgabepfad für die Pipelinesegmente in die entsprechenden Verzeichnisse in der Pipelineverzeichnisstruktur.
Die Hostanwendung und die Hostansicht werden normalerweise im selben Verzeichnis bereitgestellt. Das Pipelineverzeichnis kann sich an einem beliebigen Ort befinden, es handelt sich jedoch normalerweise um das Verzeichnis der Hostanwendung.