Crear paquetes de programa previo

El programa de instalación es un instalador genérico que se puede configurar para detectar e instalar componentes redistribuibles, como archivos de Windows Installer (.msi) y programas ejecutables. El instalador también se conoce como programa previo. Se programa mediante un conjunto de manifiestos XML que especifican los metadatos que administrarán la instalación del componente. Cada componente redistribuible, o requisito previo, que aparece en el cuadro de diálogo Requisitos previos de ClickOnce es un paquete del programa previo. Un paquete de programa previo es un grupo de directorios y archivos que contienen archivos de manifiesto que describen cómo se debe instalar el requisito previo.

El programa previo detecta primero si los requisitos previos están ya instalados. Si no lo están, el programa previo muestra el contrato de licencia. Después de que el usuario acepta los contratos de licencia, comienza la instalación de los requisitos previos. Si se detectan todos los requisitos previos, el programa previo inicia el instalador de la aplicación.

Creación de paquetes del programa previo personalizados

Puede generar los manifiestos del programa previo con el editor XML de Visual Studio. Para ver un ejemplo de cómo crear un paquete del programa previo, consulte Tutorial: Creación de un programa previo personalizado con un aviso de privacidad.

Para crear un paquete del programa previo, debe crear un manifiesto de producto y, para cada versión localizada de un componente, también un manifiesto de paquete.

  • El manifiesto del producto, product.xml, que contiene los metadatos del paquete que son independientes del idioma. Contiene los metadatos comunes a todas las versiones localizadas del componente redistribuible. Para crear este archivo, consulte Procedimiento: Creación de un manifiesto de producto.

  • El manifiesto del paquete, package.xml, que contiene los metadatos específicos del idioma; normalmente, contiene mensajes de error localizados. Un componente debe tener al menos un manifiesto del paquete por cada versión localizada de ese componente. Para crear este archivo, vea Procedimiento: Creación de un manifiesto de paquete.

Una vez creados estos archivos, coloque el archivo del manifiesto del producto en una carpeta con el nombre del programa previo personalizado. El archivo del manifiesto del paquete va en una carpeta con el nombre de la configuración regional. Por ejemplo, si el archivo del manifiesto del paquete es para la redistribución en inglés, coloque el archivo en una carpeta llamada en. Repita este proceso para cada configuración regional, como ja para japonés y de para alemán. El paquete del programa previo personalizado final podría tener la siguiente estructura de carpetas.

CustomBootstrapperPackage
  product.xml
  CustomBootstrapper.msi
  de
    eula.rtf
    package.xml
  en
    eula.rtf
    package.xml
  ja
    eula.rtf
    package.xml

Por último, copie los archivos redistribuibles en la ubicación de la carpeta del programa previo. Para obtener más información, consulte Cómo: crear un paquete de arranque localizado.

*\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages*

or

*<VS Install Path>\MSBuild\Microsoft\VisualStudio\BootstrapperPackages*

Nota:

La ruta de acceso indicada anteriormente en la ruta de instalación de Visual Studio funciona a partir de la versión de Visual Studio 2019 Update 7.

También puede encontrar la ubicación de la carpeta del programa previo con el valor de Ruta de acceso en la siguiente clave del Registro:

*HKLM\Software\Microsoft\GenericBootstrapper*

En los sistemas de 64 bits, use la siguiente clave del Registro:

*HKLM\Software\Wow6432Node\Microsoft\GenericBootstrapper*

Cada componente redistribuible aparece en su propia subcarpeta, en el directorio de los paquetes. Los archivos redistribuibles y de manifiesto del producto se colocan en esta subcarpeta. Las versiones localizadas de los manifiestos de componentes y de paquetes tienen que colocarse en subcarpetas con el nombre de la referencia cultural.

Una vez copiados estos archivos en la carpeta del programa previo, el paquete del programa previo aparece automáticamente en el cuadro de diálogo Requisitos previos de Visual Studio. Si el paquete del programa previo personalizado no aparece, cierre y vuelva a abrir el cuadro de diálogo Requisitos previos. Para obtener más información, consulta Cuadro de diálogo Requisitos previos.

La tabla siguiente muestra las propiedades que el programa previo rellena automáticamente.

Propiedad Descripción
ApplicationName Nombre de la aplicación.
ProcessorArchitecture El procesador y los bits por palabra de la plataforma de destino de un ejecutable. Los valores son los siguientes:

- Intel
- IA64
- AMD64
VersionNT Número de versión de los sistemas operativos Windows. La sintaxis de la versión es Principal.Secundaria.ServicePack.
VersionMSI La versión del ensamblado de Windows Installer (msi.dll) que se ejecuta durante la instalación.
AdminUser Esta propiedad se establece si el usuario tiene privilegios administrativos. Los valores son true o false.
InstallMode El modo de instalación indica desde dónde debe instalarse el componente. Los valores son los siguientes:

- HomeSite: los requisitos previos se instalan desde el sitio web del proveedor.
- SpecificSite: los requisitos previos se instalan desde la ubicación que seleccione.
- SameSite: los requisitos previos se instalan desde la misma ubicación que la aplicación.

Separación de los redistribuibles de las instalaciones de aplicaciones

Puede evitar que los archivos redistribuibles se implementen en proyectos de instalación. Para ello, cree una lista de redistribuibles en la carpeta RedistList de su directorio de .NET Framework:

%ProgramFiles%\Microsoft.NET\RedistList

La lista de redistribuibles es un archivo XML cuyo nombre debe seguir el formato siguiente: <Nombre de la compañía><Nombre del componente>.RedistList.xml. Por ejemplo, si el componente se llama Datawidgets y ha sido creado por Acme, use Acme.DataWidgets.RedistList.xml. El siguiente podría ser un ejemplo del contenido de la lista de redistribuibles:

<?xml version="1.0" encoding="UTF-8"?>
<FileList Redist="Acme.DataWidgets" >
<File AssemblyName="Acme.DataGrid" Version="1.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" Culture="neutral" ProcessorArchitecture="MSIL" InGAC="true" />
</FileList>