Requisitos de desenvolvimento de pipeline
Para ativar os segmentos de tubulação e suplementos a serem descobertos e ativado, devem atender às escopo especificado, atributo e os requisitos de estrutura de diretório.
Segmentos de tubulação e Assemblies
O add-ins, contratos e modos de exibição devem ser públicos. Adaptadores e seus construtores podem ser internos.
Normalmente, os segmentos de pipeline estão contidos dentro de seu próprio assembly, mas você pode combinar os seguintes segmentos no mesmo assembly:
Modos de exibição de host do add-ins e adicionar no lado.
Adaptadores de host e adicionar no lado adaptadores.
Você pode combinar o host e adaptadores de adicionar no lado no mesmo assembly somente se você combinar, também, os modos de exibição no mesmo assembly.
Se você combinar um segmento em um lado do pipeline com sua contraparte no outro lado do pipeline, como, por exemplo, as exibições do host de suplementos com exibições add-in, você deve implantar o assembly para ambos os lados do pipeline para esse segmento.
Se você não combina os modos de exibição no mesmo assembly, você pode combinar o host com o modo de exibição de host do add-in no mesmo assembly.
Requisitos de atributo
Os seguintes segmentos de pipeline requerem atributos nas classes que definem-los:
Add-ins requerem AddInAttribute.
Contratos exigem AddInContractAttribute.
Suplemento modos de exibição exigem AddInBaseAttribute.
Adicionar no lado adaptadores exigem AddInAdapterAttribute.
Precisam de adaptadores de host HostAdapterAttribute.
O modo de exibição do host do segmento de pipeline add-in não requer um atributo porque esse objeto é passado para o AddInStore.FindAddIns(Type, String, String[]) método e portanto não precisa ser descoberto.
A ilustração a seguir mostra os segmentos de pipeline com seus atributos necessários.
Modelo de suplemento com os atributos necessários em tipos
Requisitos do diretório de pipeline
Para o .NET Framework para descobrir a segmentos de tubulação e ativar suplementos, o pipeline de segmentos devem ser colocados no diretório especificado. Os nomes de diretório especificado são necessários, mas não diferenciam maiúsculas de minúsculas. Apenas os nomes que não estão especificados são o nome da pasta raiz do pipeline (que você fornecer para os métodos de descoberta) e os nomes das subpastas que contêm os suplementos. Todos os nomes do segmento especificado devem ser subdiretórios no mesmo nível na raiz do pipeline.
A ilustração a seguir mostra esses requisitos de diretório.
Diretórios necessários para o desenvolvimento de suplemento
A tabela a seguir descreve a estrutura de diretório necessário.
Diretório |
Descrição |
---|---|
Raiz do pipeline |
O diretório que contém as subpastas dos segmentos de pipeline. Não há nenhum nome necessário para este diretório e pode ser em qualquer local. Exemplo: ..\Pipeline |
AddIns |
Opcional. O diretório que contém subdiretórios de um ou mais, cada qual contendo um add-in. Este diretório deve ser nomeado AddIns. Exemplo: ..\Pipeline\AddIns Você pode ter suplementos em outros locais no sistema. |
AddInSideAdapters |
O diretório que contém o conjunto de adaptadores de lado em Adicionar. Este diretório deve ser nomeado AddInSideAdapters. Exemplo: ..\Pipeline\AddInSideAdapters |
AddInViews |
O diretório que contém o conjunto de exibições de suplementos. Este diretório deve ser nomeado AddInViews. Exemplo: ..\Pipeline\AddInViews |
Contratos |
O diretório que contém o conjunto de contratos. Este diretório deve ser nomeado contratos. Exemplo: ..\Pipeline\Contracts |
HostSideAdapters |
O diretório que contém o conjunto de adaptadores do lado do host. Este diretório deve ser nomeado HostSideAdapters. Exemplo: ..\Pipeline\HostSideAdapters |
O AddInStore.Update e AddInStore.Rebuild métodos têm sobrecargas que utilizam uma variável de seqüência de caracteres que representa a raiz do pipeline, ou um PipelineStoreLocation valor. Esses métodos descubram suplementos disponíveis e pipeline segmentos no sistema e mantêm suas informações em cache em um armazenamento de informações. Para obter mais informações sobre os métodos de descoberta, consulte Descoberta de suplemento.
O aplicativo host e o modo de exibição do host do segmento de pipeline add-in são normalmente implantados no mesmo diretório que pode ser em qualquer local. O aplicativo host requer uma referência para o modo de exibição do host do segmento add-in que representa o add-in para ativar.
O pipeline pode estar em qualquer local, inclusive dentro da estrutura de diretório de sua solução de Visual Studio. Você deve copiar os segmentos de pipeline para os seus diretórios no pipeline. O diretório de pipeline e seus subdiretórios são projetados para conter vários pipelines. Para obter mais informações sobre várias tubulações cenários, consulte Cenários do Pipeline de suplemento.
Suplementos em outros locais.
Não é necessário ter o add-ins na estrutura do diretório de pipeline. Se não estiverem na estrutura do diretório de pipeline, você deve chamar o AddInStore.UpdateAddIns método ou a RebuildAddIns método que leva o caminho para o diretório que contém de add-ins, como parâmetro.
Você também deve incluir o addInPaths parâmetro ao chamar o AddInStore.FindAddIns método.
Se seu aplicativo host conhece os caminhos e nomes de tipo completo dos seus suplementos, pode usar o FindAddIn método para localizar um suplemento específico, que evita a consultas sobre a estrutura de diretório de pipeline. No entanto, uma estrutura de diretórios do pipeline ainda é necessária.
Referências de segmento de pipeline em Visual Studio
Ao adicionar uma referência em um projeto para outro segmento de pipeline, como, por exemplo, o adaptador de adicionar no lado que requer uma referência para o segmento de contrato, fazer uma referência para o projeto do segmento em vez de seu assembly. Neste exemplo, a referência seria o projeto do contrato. Uma referência de projeto impede que os assemblies referenciados sendo implantado no pipeline, que pode causar conflitos. Conflitos também são impedidos por não copiar os arquivos localmente.
Para adicionar uma referência de projeto
Em Solution Explorer, com o botão direito do referências pasta e escolha Adicionar referência de.
Sobre o projetos guia, escolha o projeto desejado e clique em OK.
Sob o referências pasta, clique na referência de projeto que você acabou de adicionar.
Na referência de Propriedades, defina Copy Local para False.
Referências necessárias
A tabela a seguir lista os segmentos de pipeline que exigem referências assembly para System.AddIn.dll e System.Contract.dll. Alguns segmentos também exigem referências a outros segmentos compilados.
Segmento de pipeline |
Montagem e referências de projeto |
Referências do namespace e tipo |
---|---|---|
Contrato |
System.addin.dll System.addin.Contract.dll |
System.addin.pipeline System.addin.Contract |
Suplemento do modo de exibição |
System.addin.dll |
System.addin.pipeline |
Adaptador de adicionar no lado |
System.addin.dll System.addin.Contract.dll Segmento de suplemento do modo de exibição Segmento de contrato |
System.addin.pipeline |
Adaptador de host |
System.addin.dll System.addin.Contract.dll Segmento de modo de exibição de host Segmento de contrato |
System.addin.pipeline |
Host |
System.addin.dll Segmento de modo de exibição de host |
System.addin.Hosting modo de exibição de host |
Suplemento |
System.addin.dll Segmento de suplemento do modo de exibição |
System. AddIn suplemento do modo de exibição |
O modo de exibição de host do add-in não possui referência requisitos, mas é necessária para o aplicativo host.
Implantando o Pipeline de Visual Studio
Em Visual Studio, você pode criar segmentos de tubulação na estrutura de diretório de pipeline, alterando o caminho de compilação de saída
Para implantar o pipeline de Visual Studio
Do Ferramentas , aponte para o projeto Propriedades e, em seguida, selecione o Build guia.
Alterar o caminho de saída para os segmentos de pipeline para seus respectivos diretórios na estrutura do diretório de pipeline.
O aplicativo host e o modo de exibição de host são normalmente implantados no mesmo diretório. O diretório de pipeline pode estar em qualquer local, mas é normalmente no mesmo diretório do aplicativo host.