Anatomía de un paquete VSIX

Un paquete VSIX es un archivo .vsix que contiene una o varias extensiones Visual Studio, junto con los metadatos que Visual Studio usa para clasificar e instalar las extensiones. Los metadatos están contenidos en el manifiesto VSIX y en el archivo de Content_Types .xmlvsIX. Un paquete VSIX también puede contener uno o varios archivos Extension.vsixlangpack para proporcionar texto de instalación localizado y puede contener paquetes VSIX adicionales para instalar dependencias.

El formato del paquete VSIX sigue el estándar Convenciones de empaquetado abierto (OPC). El paquete contiene archivos binarios y de compatibilidad, junto con un archivo de Content_Types .xmly un archivo de manifiesto .vsix. Un paquete VSIX puede contener la salida de varios proyectos o incluso varios paquetes que tienen sus propios manifiestos.

Nota

Los nombres de los archivos incluidos en los paquetes VSIX no deben incluir espacios ni caracteres reservados en identificadores uniformes de recursos (URI), tal como se define en [ RFC2396. ]

El manifiesto VSIX

El manifiesto VSIX contiene información sobre la extensión que se va a instalar y sigue el esquema vsx. Para obtener más información, vea Referencia del esquema de extensión VSIX 1.0. Para obtener un manifiesto VSIX de ejemplo, vea Elemento PackageManifest (elemento raíz, esquema VSX).

El manifiesto VSIX debe tener un extension.vsixmanifest nombre cuando se incluye en un archivo ^.vsix*.

El contenido

Un paquete VSIX puede contener plantillas, elementos del cuadro de herramientas, VSPackages o cualquier otro tipo de extensión compatible con Visual Studio.

Paquetes de idioma

Un paquete VSIX puede contener una o más archivos Extension.vsixlangpack para proporcionar texto localizado durante la instalación. Para obtener más información, vea Localización de paquetes VSIX.

Dependencias y referencias

Un paquete VSIX puede contener otros paquetes VSIX como referencias. Cada uno de estos otros paquetes debe incluir su propio manifiesto VSIX.

Si un usuario intenta instalar una extensión que tiene dependencias, el instalador comprueba que los ensamblados necesarios están instalados en el sistema de usuario. Si no se encuentran los ensamblados necesarios, Extensiones y actualizaciones muestra una lista de los ensamblados que faltan.

Si el manifiesto de extensión incluye uno o varios elementos Reference, Extensiones y actualizaciones compara el manifiesto de cada referencia con las extensiones instaladas en el sistema e instala la extensión a la que se hace referencia si aún no está instalada. Si se instala una versión anterior de una extensión a la que se hace referencia, la versión más reciente la reemplaza.

Si un proyecto de una solución de varios proyectos incluye una referencia a otro proyecto de la misma solución, el paquete VSIX incluye las dependencias de ese proyecto. Puede invalidar este comportamiento seleccionando la referencia del proyecto interno y, a continuación, en la ventana Propiedades, estableciendo la propiedad Grupos de salida incluidos en VSIX en BuiltProjectOutputGroup .

Para incluir archivos DLL satélite de ensamblados a los que se hace referencia en el paquete VSIX, agregue a la propiedad Grupos de SatelliteDllsProjectOutputGroup salida incluidos en VSIX.

Ubicación de la instalación

Durante la instalación, Extensiones y actualizaciones busca el contenido del paquete VSIX en una carpeta en %LocalAppData%\Microsoft\VisualStudio\14.0\Extensions.

De forma predeterminada, la instalación solo se aplica al usuario actual, ya que %LocalAppData% es un directorio específico del usuario. Sin embargo, si establece el elemento AllUsers del manifiesto en True , la extensión se instalará en \ . VisualStudioInstallationFolder\Common7\IDE\Extensions y estará disponible para todos los usuarios del equipo.

[Content_Types].xml

El archivo [Content_Types].xml identifica los tipos de archivo del archivo .vsix expandido. Visual Studio este archivo durante la instalación del paquete, pero no instala el propio archivo. Para obtener más información sobre este archivo, vea La estructura del archivo [Content_types].xml .

El estándar Convenciones de empaquetado abierto (OPC) requiere un .xml[Content_Types]. Para obtener más información sobre OPC, vea OPC: un nuevo estándar para empaquetar los datos en el sitio web de MSDN.