Anatomía de un paquete VSIX

Un paquete VSIX es un .vsix archivo que contiene una o varias extensiones de Visual Studio, junto con los metadatos que Visual Studio usa para clasificar e instalar las extensiones. Esos metadatos se encuentran en el manifiesto VSIX y en el archivo [Content_Types].xml . Un paquete VSIX también puede contener uno o varios archivos Extension.vsixlangpack para proporcionar texto de configuración localizado y puede contener paquetes VSIX adicionales para instalar dependencias.

El formato de paquete VSIX sigue el estándar Open Packaging Conventions (OPC). El paquete contiene archivos binarios y archivos auxiliares, junto con un archivo [Content_Types].xml y un .vsix archivo de manifiesto. 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].

Manifiesto VSIX

El manifiesto VSIX contiene información sobre la extensión que se va a instalar y sigue el esquema VSIX. Para obtener más información, vea Referencia del esquema de extensión VSIX 2.0.

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

El contenido

Un paquete VSIX puede contener plantillas, elementos de 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, consulte 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 Novedades muestra una lista de los ensamblados que faltan.

Si el manifiesto de extensión incluye uno o varios elementos Dependency, Extensions y Novedades compara el manifiesto de cada referencia a 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 SatelliteDllsProjectOutputGroup a la propiedad Grupos de salida incluidos en VSIX .

Ubicación de la instalación

Durante la instalación, Extensiones y Novedades busca el contenido del paquete VSIX en una carpeta en %LocalAppData%\Microsoft\VisualStudio\{version}\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 AllUsers elemento del manifiesto Trueen , 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 en el archivo expandido .vsix . Visual Studio usa 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 Open Packaging Conventions (OPC) requiere un archivo [Content_Types].xml . Para obtener más información sobre OPC, consulte OPC: Un nuevo estándar para empaquetar los datos.