Extensiones de implementación para las Herramientas de SharePoint en Visual Studio
Para implementar una extensión de herramientas de SharePoint, cree un paquete de extensión de Visual Studio (VSIX) que contenga el ensamblado de la extensión y cualquier otro archivo que desee distribuir con ella. Un paquete VSIX es un archivo comprimido que sigue la norma OPC (Open Packaging Conventions). Los paquetes VSIX tienen la extensión .vsix.
Después de crear un paquete VSIX, otros usuarios pueden ejecutar el archivo .vsix para instalar la extensión. Cuando un usuario instala la extensión, todos los archivos se instalan en la carpeta %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0\Extensions. Para implementar la extensión, puede cargar el paquete VSIX en el sitio web de Visual Studio Gallery o bien puede distribuir el paquete a sus clientes por otros medios; por ejemplo, puede hospedar el paquete en un recurso compartido de red o en otro sitio web.
Para obtener más información sobre la creación de paquetes VSIX y su implementación en Visual Studio Gallery, vea VSIX Deployment.
Puede crear un paquete VSIX con la plantilla Proyecto VSIX de Visual Studio o bien puede crearlo manualmente.
Usar proyectos VSIX para crear paquetes VSIX
Puede utilizar la plantilla Proyecto VSIX incluida en el SDK de Visual Studio 2010 para crear paquetes VSIX para las extensiones de herramientas de SharePoint. Al utilizar un proyecto VSIX, cuenta con varias ventajas con respecto a la creación manual de un paquete VSIX:
Al compilar el proyecto, Visual Studio genera automáticamente el paquete VSIX. Las tareas como agregar los archivos de implementación al paquete y crear el archivo [Content_Types].xml para el paquete se llevan a cabo de forma automática.
Puede configurar el proyecto VSIX para incluir el resultado de la compilación del proyecto de extensión y otros archivos, como plantillas de proyecto y plantillas de elemento, en el paquete VSIX.
Para obtener más información sobre el uso de un proyecto VSIX, vea VSIX Project Template.
Organizar los proyectos
De forma predeterminada, los proyectos VSIX generan solo los paquetes VSIX, no los ensamblados. Por consiguiente, normalmente una extensión de herramientas de SharePoint no se implementa en un proyecto VSIX. Por lo general se trabaja con al menos dos proyectos:
Un proyecto VSIX.
Un proyecto de biblioteca de clases que implementa la extensión.
También puede trabajar con proyectos adicionales para ciertos tipos de extensiones:
Un proyecto de biblioteca de clases que implementa cualquier comando de SharePoint usado por la extensión. Para obtener un tutorial que muestra este escenario, vea Tutorial: Extender el Explorador de servidores para mostrar elementos web.
Un proyecto de plantilla de elemento o plantilla de proyecto que crea una plantilla de elemento o una plantilla de proyecto, si la extensión define un nuevo tipo de elemento de proyecto de SharePoint. Para obtener un tutorial que muestra este escenario, vea Tutorial: Crear un elemento de proyecto de acción personalizado con una plantilla de elementos, parte 1.
Un proyecto de biblioteca de clases que implementa un asistente personalizado para una plantilla de elemento o una plantilla de proyecto, si la extensión incluye una plantilla. Para obtener un tutorial que muestra este escenario, vea Tutorial: Crear un elemento de proyecto de acción personalizado con una plantilla de elementos, parte 2.
Si incluye todos los proyectos en la misma solución de Visual Studio, puede modificar el archivo source.extension.vsixmanifest del proyecto VSIX para que incluya el resultado de la compilación de los proyectos de biblioteca de clases.
Modificar el manifiesto de VSIX
Debe modificar el archivo source.extension.vsixmanifest del proyecto VSIX para incluir las entradas de todos los elementos que desea incluir en la extensión. Al modificar el archivo source.extension.vsixmanifest, Visual Studio abre el archivo en un diseñador que proporciona una interfaz de usuario para editar XML en el archivo. Para obtener más información, vea VSIX Manifest Designer.
Debe agregar entradas al archivo source.extension.vsixmanifest para los siguientes elementos:
El ensamblado de la extensión.
El ensamblado que implementa los comandos de SharePoint que usa la extensión.
Las plantillas de proyecto o plantillas de elemento asociadas a la extensión.
Un asistente personalizado para una plantilla asociada a la extensión.
En los procedimientos siguientes se describe cómo agregar entradas al archivo .vsixmanifest para cada uno de estos elementos.
Para incluir el ensamblado de la extensión
En el proyecto VSIX, haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.
En la sección Contenido del editor, haga clic en el botón Agregar contenido.
En el cuadro de diálogo Agregar contenido, en el cuadro de lista Seleccione un tipo de contenido, elija MEF Component.
En Seleccione un origen, siga uno de estos pasos:
Si el ensamblado de la extensión se compila desde un proyecto que se encuentra en la misma solución que el proyecto VSIX, haga clic en el botón de radio Proyecto y seleccione el nombre del proyecto en el cuadro de lista situado junto a él.
Si el ensamblado de la extensión se incluye como un archivo en el proyecto, haga clic el botón de radio Archivo del proyecto y seleccione el ensamblado en el cuadro de lista situado junto a él.
Si el ensamblado de la extensión se encuentra en alguna otra ubicación, haga clic en el botón de radio Archivo y, a continuación, utilice el cuadro de diálogo Elegir un archivo para localizar y seleccionar el ensamblado.
Haga clic en Aceptar.
Para incluir un ensamblado de comando de SharePoint
En el proyecto VSIX, haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.
En la sección Contenido del editor, haga clic en el botón Agregar contenido.
En el cuadro de diálogo Agregar contenido, en el cuadro de lista Seleccione un tipo de contenido, seleccione Tipo de extensión personalizada.
En el cuadro de texto Tipo, escriba SharePoint.Commands.v4. Este valor es necesario para todos los ensamblados que contienen comandos de SharePoint.
En Seleccione un origen, siga uno de estos pasos:
Si el ensamblado de comando se compila desde un proyecto que se encuentra en la misma solución que el proyecto VSIX, haga clic en el botón de radio Proyecto y seleccione el nombre del proyecto de comando en el cuadro de lista situado junto a él.
Si el ensamblado de comando se incluye como un archivo en el proyecto, haga clic el botón de radio Archivo del proyecto y seleccione el ensamblado en el cuadro de lista situado junto a él.
Si el ensamblado de comando se encuentra en alguna otra ubicación, haga clic en el botón de radio Archivo y, a continuación, utilice el cuadro de diálogo Elegir un archivo para localizar y seleccionar el ensamblado.
Haga clic en Aceptar.
Para incluir una plantilla creada mediante un proyecto de plantilla de proyecto o un proyecto de plantilla de elemento en Visual Studio SDK
En el proyecto VSIX, haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.
En la sección Contenido del editor, haga clic en el botón Agregar contenido.
En el cuadro de diálogo Agregar contenido, en el cuadro de lista Seleccione un tipo de contenido, seleccione Plantilla de proyecto o Plantilla de elemento.
En Seleccione un origen, haga clic en el botón de radio Proyecto y seleccione el nombre del proyecto en el cuadro de lista adyacente.
Haga clic en Aceptar.
En el Explorador de soluciones, haga clic con el botón secundario en el nodo de la plantilla de proyecto o del proyecto de plantilla de elemento y haga clic en Descargar el proyecto.
Haga clic con el botón secundario en el nodo del proyecto otra vez y haga clic en Editar NombreDeProyectoDePlantilla**.csproj** o en Editar NombreDeProyectoDeElemento**.vbproj**.
Busque el elemento VSTemplate siguiente en el archivo del proyecto.
<VSTemplate Include="YourTemplateName.vstemplate">
Reemplace este elemento VSTemplate por el código XML siguiente.
<VSTemplate Include="YourTemplateName.vstemplate"> <OutputSubPath>SharePoint\SharePoint14</OutputSubPath> </VSTemplate>
El elemento OutputSubPath especifica las carpetas adicionales en la ruta de acceso en la que se crea la plantilla de proyecto al compilar el proyecto. Las carpetas especificadas aquí garantizan que la plantilla de elemento solo estará disponible cuando los clientes hagan clic en el nodo 2010 bajo el nodo SharePoint en el cuadro de diálogo Agregar nuevo proyecto.
Guarde y cierre el archivo.
En el Explorador de soluciones, haga clic con el botón secundario en la plantilla de proyecto o en el proyecto de plantilla de elemento y haga clic en Volver a cargar el proyecto.
Para incluir una plantilla creada manualmente
En el proyecto VSIX, agregue una nueva carpeta al proyecto donde se incluirá la plantilla.
En esta nueva carpeta, cree las siguientes subcarpetas y, a continuación, agregue el archivo de plantilla (.zip) a la carpeta Id. de configuración regional.
YourTemplateFolder
SharePoint
SharePoint14
Id. de configuración regional
YourTemplateName.zip
Por ejemplo, si tiene una plantilla de elemento denominada ContosoCustomAction.zip compatible con la configuración regional de inglés (Estados Unidos), la ruta de acceso completa podría ser ItemTemplates\SharePoint\SharePoint14\1033\ContosoCustomAction .zip.
En el Explorador de soluciones, haga clic en el archivo de plantilla (YourTemplateName.zip).
En la ventana Propiedades, establezca la propiedad Acción de compilación en Contenido.
Haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.
En la sección Contenido del editor, haga clic en el botón Agregar contenido.
En el cuadro de diálogo Agregar contenido, en el cuadro de lista Seleccione un tipo de contenido, seleccione Plantilla de elemento o Plantilla de proyecto.
En Seleccione un origen, haga clic en el botón de radio Archivo del proyecto y seleccione la ruta de acceso completa de la plantilla en el cuadro de lista adyacente. Por ejemplo, ItemTemplates\SharePoint\SharePoint14\1033\ContosoCustomAction.zip.
Haga clic en Aceptar.
Para incluir un asistente para una plantilla de proyecto o una plantilla de elemento
En el proyecto VSIX, haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.
En la sección Contenido del editor, haga clic en el botón Agregar contenido.
En el cuadro de diálogo Agregar contenido, en el cuadro de lista Seleccione un tipo de contenido, seleccione Asistente para plantillas.
En Seleccione un origen, realice uno de estos pasos:
Si el ensamblado del asistente se compila desde un proyecto que se encuentra en la misma solución que el proyecto VSIX, haga clic en el botón de radio Proyecto y seleccione el nombre del proyecto en el cuadro de lista adyacente.
Si el ensamblado del asistente se incluye como un archivo en el proyecto, haga clic en el botón de radio Archivo del proyecto y seleccione el ensamblado en el cuadro de lista adyacente.
Si el ensamblado del asistente se encuentra en otra ubicación, haga clic en el botón de radio Archivo y, a continuación, use el cuadro de diálogo Elegir un archivo para localizar y seleccionar el ensamblado.
Haga clic en Aceptar.
Tutoriales relacionados
En la tabla siguiente se hace una lista de los tutoriales que muestran cómo usar un proyecto VSIX para implementar diferentes tipos de extensiones de herramientas de SharePoint.
Tipo de extensión |
Tutoriales relacionados |
---|---|
Una extensión que incluye solo el ensamblado de la extensión |
Tutorial: Extender un tipo de elemento de proyecto de SharePoint |
Una extensión que incluye comandos de SharePoint |
Tutorial: Crear un paso de implementación personalizado para proyectos de SharePoint Tutorial: Extender el Explorador de servidores para mostrar elementos web Tutorial: Crear un elemento de proyecto de columna de sitio con una plantilla de proyecto, parte 2 |
Una extensión que incluye una plantilla de Visual Studio |
Tutorial: Crear un elemento de proyecto de columna de sitio con una plantilla de proyecto, parte 1 |
Una extensión que incluye un asistente de plantilla |
Tutorial: Crear un elemento de proyecto de columna de sitio con una plantilla de proyecto, parte 2 |
Crear paquetes VSIX de forma manual
Si desea crear el paquete VSIX para su extensión de herramientas de SharePoint de forma manual, siga estos pasos:
Cree el archivo extension.vsixmanifest, el archivo [Content_Types].xml y el archivo de paquete VSIX (archivo .vsix). Para obtener más información, vea Anatomy of a VSIX Package y How to: Manually Package an Extension (VSIX Deployment).
Agregue el ensamblado de la extensión al paquete VSIX. Si la extensión incluye un comando de SharePoint, agregue también el ensamblado que lo implementa al paquete VSIX.
Modifique el archivo extension.vsixmanifest:
Agregue un elemento MefComponent bajo el elemento Content. Establezca el valor del elemento en la ruta de acceso relativa del ensamblado que implementa la extensión en el paquete VSIX. Para obtener más información, vea MEFComponent Element (VSX Schema).
Si la extensión incluye un comando de SharePoint que llama al modelo de objetos de servidor de SharePoint, agregue un nuevo elemento CustomExtension bajo el elemento Content. Establezca el valor del elemento en la ruta de acceso relativa del ensamblado que implementa el comando de SharePoint en el paquete VSIX y establezca el atributo Type en el valor SharePoint.Commands.v4. Para obtener más información, vea CustomExtension Element (VSX Schema).
Si la extensión incluye una plantilla de proyecto o una plantilla de elemento, agregue un nuevo elemento ProjectTemplate o ItemTemplate al elemento Content. Establezca el valor del elemento en la ruta de acceso relativa de la carpeta que contiene la plantilla en el paquete VSIX. Para obtener más información, vea ProjectTemplate Element (VSX Schema) y ItemTemplate Element (VSX Schema).
Si la extensión incluye un asistente personalizado para una plantilla de proyecto o una plantilla de elemento, agregue un nuevo elemento Assembly al elemento Content. Establezca el valor del elemento en la ruta de acceso relativa del ensamblado en el paquete VSIX y establezca el atributo AssemblyName en el nombre del ensamblado completo (incluidos versión, referencia cultural y token de clave pública). Para obtener más información, vea Assembly Element (VSX Schema).
Ejemplo
En el ejemplo siguiente se muestra el contenido de un archivo extension.vsixmanifest para una extensión de herramientas de SharePoint. La extensión se implementa en un ensamblado denominado Contoso.ProjectExtension.dll. La extensión incluye un ensamblado de comando de SharePoint denominado Contoso.ExtensionCommands.dll y una plantilla de elemento bajo una carpeta denominada ItemTemplates en el paquete VSIX. En este ejemplo se supone que ambos ensamblados se encuentran en la misma carpeta que el archivo extension.vsixmanifest del paquete VSIX.
<?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>
Vea también
Conceptos
Extender el sistema de proyectos de SharePoint
Llamar a los modelos de objetos de SharePoint
Otros recursos
Extender el nodo Conexiones de SharePoint en el Explorador de servidores
Depurar las extensiones para las Herramientas de SharePoint en Visual Studio