Cómo crear un paquete .msi anidados

Exención de responsabilidades de contenido KB retirado

Este artículo se refiere a productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Resumen

Una acción de instalación anidados otro paquete de Windows Installer instala durante una instalación en ejecución actualmente. Este artículo muestra cómo crear un paquete que realiza una instalación anidada.

Más información

Puede agregar una instalación anidada a un paquete al crear una acción de instalación anidados en la tabla CustomAction y programar esta acción personalizada en las tablas de la secuencia. El cuadro de destino de la tabla CustomAction contiene una cadena de valores de propiedad pública que utiliza la instalación anidada. El cuadro origen de la tabla CustomAction identifica el paquete anidado. Una acción de instalación anidados sólo puede volver a instalar o quitar una aplicación que ha sido instalada por el paquete de instalación de la aplicación actual.

El tipo de acción de instalación anidados se especifica en el cuadro tipo de la tabla CustomAction . Dependiendo del tipo de acción personalizada, el paquete de la aplicación anidada puede residir en "subalmacenamiento" del paquete principal, como un archivo en una ubicación especificada por una propiedad o como programas anunciados en el equipo del usuario.
Tipo de acción personalizadaDescripción
Tipo de acción personalizada 7Instalación anidada de un producto que residen en el paquete de instalación.
Tipo de acción personalizada 23Instalación anidada de un paquete de instalador dentro del árbol de origen actual.
Tipo de acción personalizada 39Instalación anidada de un paquete de instalador anunciado.
El siguiente es un ejemplo de cómo crear una acción personalizada de instalación anidada de tipo 7. En el ejemplo se utiliza una herramienta denominada Orca (esta herramienta se incluye con el SDK de Windows Installer) para modificar el paquete .msi porque Visual Studio Installer no puede crea anidados acciones personalizadas de instalación. (Para obtener más información sobre Orca, consulte la sección "Referencias"). La instalación anidada implica dos paquetes MSI. En el siguiente ejemplo se utiliza Basic.msi como el paquete .msi de primario y Nest.msi como el paquete .msi anidados.
  1. Utilice la herramienta Msidb (esta herramienta se incluye con el SDK de Windows Installer) para agregar el paquete Nest.msi como "subalmacenamiento" del archivo Basic.msi. La línea de comandos es:
    Msidb -d Basic.msi - r Nest.msi
    Esto agregará Nest.msi en el archivo Basic.msi como subalmacenamiento. Aparecerá ningún cuadro de diálogo para confirmar que esto tuvo éxito, pero aumentará el tamaño del archivo Basic.msi.

    Nota: No se puede agregar Nest.msi como subalmacenamiento utilizando la tabla Binary en Orca. Cuando agrega un archivo a un archivo de MSI a través de la tabla Binary , el archivo se agrega como una secuencia binaria, no como subalmacenamiento. Archivos agregados por la tabla Binary no pueden hacer referencia a la columna de origen de la tabla CustomAction .
  2. Utilice Orca para abrir Basic.msi. Busque la tabla CustomAction y escriba la información para la acción personalizada. Si necesita pasar ninguna propiedad pública al paquete anidado, puede utilizar el cuadro de destino para este. Habrá dos acciones personalizadas, una instalación y otra para la desinstalación (que tiene un objetivo de "quitar = ALL"). El siguiente es un ejemplo de tabla de CustomAction :
    AcciónEscriba elOrigenDestino
    InstallNest7Nest.msi
    UnInstallNest7Nest.msiREMOVE=ALL
  3. Programar la acción personalizada en la tabla InstallExecuteSequence . Hay instrucciones condicionales para la instalación y la desinstalación de acciones en la tabla InstallExecuteSequence . La condición enlazará a un componente de instalación (> 2) y desinstalar (< = 2). También se podrían asociar estas acciones a una función u otra propiedad. La acción personalizada de instalación anidados debe colocarse antes InstallFinalize. Si utiliza un componente o una característica como una condición, la acción personalizada debe colocarse después de CostFinalize. El siguiente es un ejemplo InstallExecuteSequence que se supone que hay un componente en Basic.msi denominado "Comp_1" y las condiciones de la instalación anidada basándose en el estado de Comp_1):
    AcciónCondiciónSecuencia
    InstallNest$Comp_1 > 23110
    UnInstallNest$Comp_1<=23120
Aunque puede crear una instalación MSI anidada, existen inconvenientes para hacerlo. Estas desventajas son las siguientes:
  • Instalaciones anidadas no pueden compartir los componentes.
  • Una instalación administrativa no puede contener una instalación anidada.
  • Revisión y actualización no funcionará con instalaciones anidadas.
  • El programa de instalación no le costará correctamente una instalación anidada.
  • Barras integrado no puede utilizarse con instalaciones anidadas.
  • No puede instalar los recursos que se van a anunciar la instalación anidada.
  • Un paquete que realiza una instalación de una aplicación anidada también debe desinstalar la aplicación anidada cuando se desinstala el producto principal.

Referencias

Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:

255905 cómo utilizar el editor de bases de datos Orca para editar archivos de Windows Installer

Propiedades

Id. de artículo: 306439 - Última revisión: 22 ene. 2017 - Revisión: 1

Comentarios