Instalaciones simultáneas
Las instalaciones simultáneas, también denominadas instalaciones anidadas, son una característica de Windows Installer que está en desuso. Las aplicaciones instaladas con instalaciones simultáneas pueden producir un error al final, porque a los clientes les resulta difícil atenderlas correctamente. No use instalaciones simultáneas para instalar productos dirigidos al público en general. Las instalaciones simultáneas pueden tener una aplicabilidad limitada en entornos corporativos controlados cuando se usan para instalar aplicaciones que no están pensadas para un lanzamiento público. Se proporciona documentación sobre las instalaciones simultáneas para los creadores de paquetes que desean usar instalaciones simultáneas con aplicaciones que no son para distribuirlas públicamente.
Una acción de instalación simultánea instala otro paquete de Windows Installer durante una instalación que se está ejecutando en ese momento. Para agregar una instalación simultánea a un paquete, cree una acción de instalación simultánea en la tabla CustomAction y programe esta acción personalizada en las tablas de secuencia. El campo Target de la tabla CustomAction contiene una cadena de valores de propiedad pública que usa la instalación simultánea. El campo Source de la tabla CustomAction identifica el paquete simultáneo. Una acción de instalación simultánea solo puede reinstalar o desinstalar una aplicación que haya instalado el paquete de instalación de la aplicación actual.
El tipo de acción de instalación simultánea se especifica en el campo Type de la tabla CustomAction. Según el tipo de acción personalizada, el paquete de la aplicación simultánea puede estar en un subalmacenamiento del paquete principal, como un archivo en una ubicación especificada por una propiedad, o como una aplicación anunciada en la máquina del usuario. Los siguientes tipos de acciones personalizadas realizan una instalación simultánea.
Tipo de acción personalizada | Descripción |
---|---|
Tipo de acción personalizada 7 | Instalación simultánea de un producto que reside en el paquete de instalación. |
Tipo de acción personalizada 23 | Instalación simultánea de un paquete del instalador dentro del árbol de origen actual. |
Tipo de acción personalizada 39 | Instalación simultánea de un paquete del instalador anunciado. |
Una instalación simultánea comparte la misma interfaz de usuario y la misma configuración de registro que la instalación principal.
Las acciones de instalación simultáneas deben ponerse entre la acción InstallInitialize y la acción InstallFinalize de la secuencia de acciones de la instalación principal. Si se revierte la instalación principal, el instalador también revierte la instalación simultánea. No es necesario usar una ejecución diferida con las acciones de instalación simultánea, porque el instalador combina la información de reversión de las instalaciones simultánea y principal. Cuando se revierte una instalación, se revierten todos los cambios.
Los valores devueltos para las acciones de instalación simultánea son los mismos que para otras acciones personalizadas. Consulte Valores devueltos de acción personalizada.
Las acciones estándar o personalizadas que especifican un reinicio automático del sistema o le piden al usuario que lo reinicie también lo pueden hacer desde una instalación simultánea.
Cuando el instalador inicia una instalación simultánea, bloquea todas las demás instalaciones hasta que se completa la instalación simultánea y antes de continuar con la instalación principal. El instalador solo puede ejecutar instalaciones simultáneas como acciones personalizadas sincrónicas. Consulte Acciones personalizadas sincrónicas y asincrónicas. Las marcas de opción descritas en Opciones de procesamiento de devolución de acciones personalizadas deben establecerse en ninguna (+0) o msidbCustomActionTypeContinue (+64).
Una acción de instalación simultánea puede instalar una aplicación para que se ejecute localmente, se ejecute desde el origen, se reinstale o se desinstale de la misma manera que cuando se usa MsiInstallProduct para una instalación normal. Para especificar el tipo de instalación, pase la propiedad ADDLOCAL, ADDSOURCE, REINSTALL o REMOVE a la acción de instalación simultánea.
Las acciones de instalación simultánea se pueden crear en pares. Una acción se usa para la instalación y la otra se usa para quitar la instalación simultánea. Normalmente se usa un tipo de acción personalizada 7 o un tipo de acción personalizada 23 para la instalación. Normalmente se usa un tipo de acción personalizada 39 para quitar la instalación simultánea cuando se desinstala el producto primario. El registro de la acción personalizada de desinstalación de la tabla CustomAction puede tener el GUID del código del producto en el campo Source y "REMOVE=ALL" en el campo Target. Las dos acciones personalizadas deben crearse en la tabla de secuencia de acciones con condiciones mutuamente excluyentes. Por ejemplo, la acción personalizada que instala el producto puede tener "NOT Installed" en el campo Condition y la acción personalizada que quita la instalación simultánea puede tener REMOVE="ALL" en ese campo.
No hay ningún método para consultar el costo de un paquete. Esto dificulta el cálculo del costo de las instalaciones simultáneas. Deben agregarse filas a la tabla ReserveCost para indicar las carpetas y el costo en el peor de los casos del componente asociado a la instalación simultánea.
Las únicas opciones de procesamiento de devolución de acciones personalizadas disponibles con acciones de instalación simultánea son ninguna (+0) o msidbCustomActionTypeContinue (+64).
Tenga en cuenta que una instalación primaria no puede llamar a su propio paquete como una acción de instalación simultánea.
Tenga en cuenta que, si una instalación por equipo intenta ejecutar una instalación simultánea por usuario, el instalador registra la instalación primaria como por usuario de forma predeterminada. Esto puede hacer que el instalador desinstale incorrectamente la aplicación porque intenta hacerlo por equipo cuando realmente está registrada como por usuario. Para forzar que una instalación simultánea siga el estado de su instalación primaria, escriba ALLUSERS="[ALLUSERS]" en la columna Target de la tabla CustomAction. En este caso, la instalación simultánea se realiza por equipo si el elemento primario es por equipo, y se realiza por usuario si el elemento primario es por usuario.
Los desarrolladores deben tener en cuenta las siguientes advertencias cuando crean instalaciones simultáneas.
- Las instalaciones simultáneas no pueden compartir componentes.
- Una instalación administrativa no puede contener una instalación simultánea.
- Es posible que la aplicación de revisiones y actualizaciones no funcione con las instalaciones simultáneas.
- Es posible que el instalador no calcule correctamente el costo de una instalación simultánea.
- Las barras de progreso integradas no se pueden usar con las instalaciones simultáneas.
- Una instalación simultánea no puede instalar recursos que se anuncian.
- Un paquete que realiza una instalación simultánea de una aplicación también debe desinstalar la aplicación simultánea cuando se desinstala el producto primario.
Para evitar que un paquete se instale en una instalación simultánea, agregue cualquiera de las siguientes instrucciones condicionales a la tabla LaunchCondition. Esto impide que el paquete se instale con una acción de instalación simultánea ejecutada por otra instalación. Esto no impide que la acción RemoveExistingProducts desinstale el paquete. Consulte también las propiedades ParentOriginalDatabase y ParentProductCode.
"Not ParentProductCode"
"Not ParentOriginalDatabase"