Compartir a través de


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:

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

  1. En el proyecto VSIX, haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.

  2. En la sección Contenido del editor, haga clic en el botón Agregar contenido.

  3. En el cuadro de diálogo Agregar contenido, en el cuadro de lista Seleccione un tipo de contenido, elija MEF Component.

  4. 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.

  5. Haga clic en Aceptar.

Para incluir un ensamblado de comando de SharePoint

  1. En el proyecto VSIX, haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.

  2. En la sección Contenido del editor, haga clic en el botón Agregar contenido.

  3. En el cuadro de diálogo Agregar contenido, en el cuadro de lista Seleccione un tipo de contenido, seleccione Tipo de extensión personalizada.

  4. En el cuadro de texto Tipo, escriba SharePoint.Commands.v4. Este valor es necesario para todos los ensamblados que contienen comandos de SharePoint.

  5. 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.

  6. 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

  1. En el proyecto VSIX, haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.

  2. En la sección Contenido del editor, haga clic en el botón Agregar contenido.

  3. 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.

  4. 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.

  5. Haga clic en Aceptar.

  6. 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.

  7. 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**.

  8. Busque el elemento VSTemplate siguiente en el archivo del proyecto.

    <VSTemplate Include="YourTemplateName.vstemplate">
    
  9. 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.

  10. Guarde y cierre el archivo.

  11. 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

  1. En el proyecto VSIX, agregue una nueva carpeta al proyecto donde se incluirá la plantilla.

  2. 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.

  3. En el Explorador de soluciones, haga clic en el archivo de plantilla (YourTemplateName.zip).

  4. En la ventana Propiedades, establezca la propiedad Acción de compilación en Contenido.

  5. Haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.

  6. En la sección Contenido del editor, haga clic en el botón Agregar contenido.

  7. 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.

  8. 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.

  9. Haga clic en Aceptar.

Para incluir un asistente para una plantilla de proyecto o una plantilla de elemento

  1. En el proyecto VSIX, haga doble clic en el archivo source.extension.vsixmanifest para abrirlo en el diseñador.

  2. En la sección Contenido del editor, haga clic en el botón Agregar contenido.

  3. En el cuadro de diálogo Agregar contenido, en el cuadro de lista Seleccione un tipo de contenido, seleccione Asistente para plantillas.

  4. 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.

  5. 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

Tutorial: Crear una extensión de proyecto de SharePoint

Tutorial: Llamar al modelo de objetos de cliente de SharePoint en una extensión del Explorador de servidores

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 acción personalizado con una plantilla de elementos, parte 1

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 acción personalizado con una plantilla de elementos, parte 2

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:

  1. 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).

  2. 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.

  3. 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