Spécifications du développement de pipelines
Mise à jour : novembre 2007
Pour permettre la découverte et l'activation de segments de pipeline et de compléments, ces derniers doivent présenter les spécifications requises en matière de portée, d'attributs et de structure de répertoires.
Segments de pipeline et assemblys
Les compléments, contrats et vues doivent être publics. Les adaptateurs et leurs constructeurs peuvent être internes.
En général, les segments de pipeline sont contenus dans leur propre assembly, mais vous pouvez combiner les segments suivants dans le même assembly :
les vues hôtes des compléments et les vues côté complément ;
les adaptateurs côté hôte et les adaptateurs côté complément.
Vous pouvez combiner l'hôte et les adaptateurs côté complément dans le même assembly uniquement si vous combinez également les vues dans le même assembly.
Si vous combinez un segment d'un côté du pipeline avec son équivalent de l'autre côté du pipeline, tel que les vues hôtes de compléments avec les vues de compléments, vous devez, pour ce segment, déployer cet assembly sur les deux côtés du pipeline.
Si vous ne combinez pas de vues dans le même assembly, vous pouvez combiner l'hôte avec la vue hôte du complément dans le même assembly.
Spécifications des attributs
Les segments de pipeline suivants requièrent des attributs sur les classes qui les définissent :
Les compléments requièrent AddInAttribute.
Les contrats requièrent AddInContractAttribute.
Les vues des compléments requièrent AddInBaseAttribute.
Les adaptateurs côté complément requièrent AddInAdapterAttribute.
Les adaptateurs côté hôte requièrent HostAdapterAttribute.
La vue hôte du segment de pipeline du complément ne requiert aucun attribut parce que cet objet est passé à la méthode AddInStore.FindAddIns(Type, String, array<String[]), et ne doit pas être découvert.
L'illustration suivante présente les segments de pipeline avec leurs attributs requis.
Modèle de complément avec des attributs requis sur des types
Spécifications du répertoire du pipeline
Pour que le .NET Framework découvre des segments de pipeline et active des compléments, les segments de pipeline doivent être placés dans un répertoire spécifique. Les noms des répertoires spécifiés doivent être fournis, mais ne respectent pas la casse. Les seuls noms qui ne sont pas spécifiés sont celui du répertoire racine du pipeline (que vous fournissez aux méthodes de découverte) et ceux des sous-répertoire qui contiennent les compléments. Tous les noms de segments spécifiés doivent être des sous-répertoire se trouvant au même niveau à la racine du pipeline.
L'illustration suivante montre ces spécifications de répertoire.
Répertoires requis pour développement de compléments
Le tableau suivant décrit la structure de répertoires requise.
Répertoire |
Description |
---|---|
Racine du pipeline |
Répertoire qui contient les sous-répertoires des segments de pipeline. Ce répertoire peut être associé à un nom et à un emplacement quelconques. Par exemple : ..\Pipeline |
AddIns |
Facultatif. Répertoire qui contient un ou plusieurs sous-répertoires, chacun d'entre eux contenant un complément. Ce répertoire doit s'appeler AddIns. Par exemple : ..\Pipeline\AddIns Vous pouvez avoir des compléments dans des répertoires différents sur votre système. |
AddInSideAdapters |
Répertoire qui contient l'assembly des adaptateurs côté complément. Ce répertoire doit s'appeler AddInSideAdapters. Par exemple : ..\Pipeline\AddInSideAdapters |
AddInViews |
Répertoire qui contient l'assembly de vues de complément. Ce répertoire doit s'appeler AddInViews. Par exemple : ..\Pipeline\AddInViews |
Contracts |
Répertoire qui contient l'assembly de contrats. Ce répertoire doit s'appeler Contracts. Par exemple : ..\Pipeline\Contracts |
HostSideAdapters |
Répertoire qui contient l'assembly des adaptateurs côté hôte. Ce répertoire doit s'appeler HostSideAdapters. Par exemple : ..\Pipeline\HostSideAdapters |
Les méthodes AddInStore.Update et AddInStore.Rebuild ont des surcharges qui prennent une variable chaîne qui représente la racine de pipeline, ou une valeur PipelineStoreLocation. Ces méthodes découvrent les compléments et segments de pipeline disponibles dans le système et conservent leurs informations en cache dans une banque d'informations. Pour plus d'informations sur les méthodes de découverte, consultez Découverte de compléments.
L'application hôte et la vue hôte du segment de pipeline du complément sont habituellement déployées dans le même répertoire qui peut se trouver à un emplacement quelconque. L'application hôte requiert une référence à la vue hôte du segment du complément qui représente le complément à activer.
Le pipeline peut se trouver à un endroit quelconque, y compris dans la structure de répertoires de votre solution Visual Studio. Vous devez copier les segments de pipeline dans leurs répertoires dans le pipeline. Le répertoire de pipeline et ses sous-répertoires sont conçus pour contenir plusieurs pipelines. Pour plus d'informations sur les différents scénarios de pipeline, consultez Scénarios de pipelines de compléments.
Compléments à d'autres emplacements
Vous n'êtes pas tenu d'avoir des compléments dans la structure de répertoires du pipeline. S'ils ne sont pas dans la structure de répertoires du pipeline, vous devez appeler la méthode AddInStore.UpdateAddIns ou la méthode RebuildAddIns qui prend le chemin d'accès au répertoire contenant des compléments comme son paramètre.
Vous devez également inclure le paramètre addInPaths lors de l'appel de la méthode AddInStore.FindAddIns.
Si votre application hôte connaît les chemins d'accès et les noms de type complets de ses compléments, elle peut utiliser la méthode FindAddIn pour rechercher un complément spécifique et ainsi éviter des requêtes dans la structure de répertoires du pipeline. Toutefois, une structure de répertoires de pipeline est néanmoins requise.
Références à un segment de pipeline dans Visual Studio
Lors de l'ajout dans un projet d'une référence à un autre segment de pipeline, tel que l'adaptateur côté complément qui requiert une référence au segment de contrat, faites référence au projet de ce segment plutôt qu'à son assembly. Dans cet exemple, il est fait référence au projet du contrat. Une référence de projet empêche des assemblys référencés d'être déployé vers le pipeline, ce qui peut provoquer des conflits. En ne copiant pas les fichiers localement, les conflits sont également évités.
Pour ajouter une référence de projet
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossierReferences, puis cliquez sur Ajouter une référence.
Dans l'onglet Projets, choisissez un projet et cliquez sur OK.
Sous le dossier References, cliquez sur la référence de projet que vous venez d'ajouter.
Dans la zone Propriétés de la référence, affectez à Copie locale la valeur False.
Références requises
Le tableau suivant répertorie les segments de pipeline qui requièrent des références d'assemblys à System.AddIn.dll et System.Contract.dll. Certains segments requièrent également des références à d'autres segments compilés.
Segment de pipeline |
Assembly et références de projet |
Espace de noms et références de type |
---|---|---|
Contrat |
System.AddIn.dll System.AddIn.Contract.dll |
System.AddIn.Pipeline System.AddIn.Contract |
Vue de complément |
System.AddIn.dll |
System.AddIn.Pipeline |
Adaptateur côté complément |
System.AddIn.dll System.AddIn.Contract.dll Segment de vue de complément Segment de contrat |
System.AddIn.Pipeline |
Adaptateur côté hôte |
System.AddIn.dll System.AddIn.Contract.dll Segment de la vue hôte Segment de contrat |
System.AddIn.Pipeline |
Host |
System.AddIn.dll Segment de la vue hôte |
System.AddIn.Hosting vue hôte |
Complément |
System.AddIn.dll Segment de vue de complément |
System.AddIn vue de complément |
La vue hôte du complément n'a pas de spécifications en termes de référence, mais elle est requise pour l'application hôte.
Déploiement vers le pipeline dans Visual Studio
Dans Visual Studio, vous pouvez générer des segments de pipeline dans la structure de répertoires du pipeline en modifiant le chemin de sortie de la génération.
Pour déployer sur le pipeline dans Visual Studio
Dans le menu Outils, pointez vers Propriétés dans votre projet, puis sélectionnez l'onglet Générer.
Modifiez le Chemin de sortie des segments de pipeline pour leur attribuer leurs répertoires respectifs dans la structure de répertoires du pipeline.
L'application hôte et la vue hôte sont habituellement déployées dans le même répertoire. Le répertoire du pipeline peut résider à un emplacement quelconque, mais il se trouve habituellement dans le même répertoire que l'application hôte.