Requisitos del desarrollo de canalizaciones

Para habilitar la detección y activación de los segmentos y complementos de canalización, éstos deben satisfacer los requisitos especificados con respecto al ámbito, los atributos y la estructura de directorios.

Segmentos y ensamblados de canalización

Los complementos, los contratos y las vistas deben ser públicos. Los adaptadores y sus constructores pueden ser internos.

Normalmente, los segmentos de canalización están incluidos dentro de su propio ensamblado, aunque los segmentos que se muestran a continuación pueden combinarse en el mismo ensamblado:

  • Las vistas de host de los complementos y las vistas de complemento.

  • Los adaptadores de host y los adaptadores de conversión.

Sólo es posible combinar los adaptadores de host y de conversión en el mismo ensamblado si las vistas también se combinan en el mismo ensamblado.

Si se combina un segmento de un extremo de la canalización con su homólogo en el otro extremo (por ejemplo, las vistas de host de los complementos con las vistas de los complementos), ese ensamblado debe implementarse en ambos extremos de la canalización de dicho segmento.

Si no está combinando las vistas en el mismo ensamblado, puede combinar el host con la vista de host del complemento en el mismo ensamblado.

Requisitos de los atributos

Los segmentos de canalización que se indican a continuación requieren atributos en las clases que los definen:

La vista de host del segmento de canalización del complemento no necesita ningún atributo porque ese objeto se pasa al método AddInStore.FindAddIns(Type, String, String[]) y, por tanto, no es necesario que se detecte.

En la ilustración siguiente se muestran los segmentos de canalización con sus atributos necesarios.

Modelo de complemento con los atributos necesarios en los tipos

Modelo de complemento con atributos requeridos en tipos.

Requisitos de los directorios de canalización

Para que .NET Framework detecte los segmentos de canalización y active los complementos, los segmentos de canalización deben colocarse en un directorio determinado. Los nombres de directorio especificados son obligatorios, pero no distinguen mayúsculas de minúsculas. Los únicos nombres que no se especifican son el nombre del directorio raíz de la canalización (que se proporciona a los métodos de detección) y los nombres de los subdirectorios que contienen los complementos. Todos los nombres de segmento especificados deben ser subdirectorios situados en el mismo nivel bajo la raíz de la canalización.

En la ilustración siguiente se muestran estos requisitos de directorio.

Directorios necesarios para el desarrollo de complementos

Directorios requeridos para el desarrollo de complementos.

En la tabla siguiente se describe la estructura de directorios necesaria.

Directorio

Descripción

Raíz de la canalización

Directorio que contiene los subdirectorios de los segmentos de canalización. No hay ningún nombre obligatorio para este directorio y puede estar en cualquier ubicación.

Ejemplo: ..\Pipeline

AddIns

Opcional. Directorio que contiene uno o varios subdirectorios, cada uno de los cuales contiene un complemento.

Este directorio debe denominarse AddIns.

Ejemplo: ..\Pipeline\AddIns

Puede haber complementos en otras ubicaciones del sistema.

AddInSideAdapters

Directorio que contiene el ensamblado de adaptadores de conversión.

Este directorio debe denominarse AddInSideAdapters.

Ejemplo: ..\Pipeline\AddInSideAdapters

AddInViews

Directorio que contiene el ensamblado de vistas del complemento.

Este directorio debe denominarse AddInViews.

Ejemplo: ..\Pipeline\AddInViews

Contracts

Directorio que contiene el ensamblado de contratos.

Este directorio debe denominarse Contracts.

Ejemplo: ..\Pipeline\Contracts

HostSideAdapters

Directorio que contiene el ensamblado de adaptadores del host.

Este directorio debe denominarse HostSideAdapters.

Ejemplo: ..\Pipeline\HostSideAdapters

Los métodos AddInStore.Rebuild y AddInStore.Update tienen sobrecargas que toman una variable de cadena que representa la raíz de la canalización o un valor PipelineStoreLocation. Estos métodos detectan los complementos y los segmentos de canalización disponibles en el sistema y almacenan su información en caché, en un almacén de datos. Para obtener información acerca de los métodos de detección, vea Detección de complementos.

La aplicación host y la vista de host del segmento de canalización del complemento normalmente se implementan en el mismo directorio, que puede estar en cualquier ubicación. La aplicación host necesita una referencia a la vista de host del segmento del complemento que representa el complemento que va a activarse.

La canalización puede estar en cualquier ubicación, incluso dentro de la estructura de directorios de la solución de Visual Studio. Los segmentos de canalización deben copiarse en sus directorios en la canalización. El directorio de canalización y sus subdirectorios se han diseñado para incluir varias canalizaciones. Para obtener más información acerca de distintos escenarios de canalización, vea Escenarios de canalizaciones de complementos.

Complementos en otras ubicaciones

No es necesario que los complementos se encuentren en la estructura de directorios de canalización. Si no están en la estructura de directorios de canalización, debe llamar al método AddInStore.UpdateAddIns o al método RebuildAddIns que toma como parámetro la ruta de acceso al directorio que contiene los complementos.

También debe incluir el parámetro addInPaths cuando llame al método AddInStore.FindAddIns.

Si la aplicación host conoce las rutas de acceso y los nombres de tipo completos de sus complementos, puede usar el método FindAddIn para buscar un complemento concreto, lo que evita tener que realizar consultas en la estructura de directorios de canalización. No obstante, la estructura de directorios de canalización sigue siendo necesaria.

Referencias a segmentos de canalización en Visual Studio

Cuando en un proyecto se agrega una referencia a otro segmento de canalización, por ejemplo, el adaptador de conversión necesita establecer una referencia al segmento de contrato, la referencia debe hacerse a ese proyecto del segmento y no a su ensamblado. En este ejemplo, la referencia se establecería al proyecto de contrato. Una referencia de proyecto impide que los ensamblados a los que se hace referencia se implementen en la canalización, lo que podría dar lugar a conflictos. Los conflictos también pueden evitarse si no se copian los archivos localmente.

Para agregar una referencia de proyecto

  1. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta Referencias y elija Agregar referencia.

  2. En la ficha Proyectos, elija el proyecto que desee y haga clic en Aceptar.

  3. En la carpeta Referencias, haga clic en la referencia de proyecto que acaba de agregar.

  4. En Propiedades de la referencia, establezca Copia local en False.

Referencias necesarias

En la tabla siguiente se muestran los segmentos de canalización que requieren referencias de ensamblado a System.AddIn.dll y System.Contract.dll. Algunos segmentos también requieren referencias a otros segmentos compilados.

Segmento de canalización

Referencias a ensamblados y proyectos

Referencias a espacios de nombres y tipos

Contrato

System.AddIn.dll

System.AddIn.Contract.dll

System.AddIn.Pipeline

System.AddIn.Contract

Vista de complemento

System.AddIn.dll

System.AddIn.Pipeline

Adaptador de conversión

System.AddIn.dll

System.AddIn.Contract.dll

Segmento de vista de complemento

Segmento de contrato

System.AddIn.Pipeline

Adaptador de host

System.AddIn.dll

System.AddIn.Contract.dll

Segmento de vista de host

Segmento de contrato

System.AddIn.Pipeline

Host

System.AddIn.dll

Segmento de vista de host

System.AddIn.Hosting

Vista de host

Complemento

System.AddIn.dll

Segmento de vista de complemento

System.AddIn

Vista de complemento

La vista de host del complemento no presenta ningún requisito con respecto a las referencias, pero es necesaria para la aplicación host.

Implementar en la canalización en Visual Studio

En Visual Studio, puede integrar los segmentos de canalización en la estructura de directorios de canalización cambiando la ruta de acceso de compilación de resultados.

Para implementar en la canalización en Visual Studio

  1. En el menú Herramientas, seleccione Propiedades en su proyecto y, a continuación, seleccione la ficha Generar.

  2. Cambie la Ruta de acceso de los resultados de los segmentos de canalización por sus respectivos directorios en la estructura de directorios de canalización.

    Normalmente, la aplicación host y la vista de host se implementan en el mismo directorio. El directorio de canalización puede estar en cualquier ubicación, aunque suele localizarse en el mismo directorio que la aplicación host.

Vea también

Conceptos

Contratos, vistas y adaptadores

Detección de complementos

Desarrollo de canalizaciones