Cómo crear un paquete .msi anidados

Seleccione idioma Seleccione idioma
Id. de artículo: 306439 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Una acción de instalación anidados instala otro paquete de Windows Installer durante una instalación que se está ejecuta actualmente. En este artículo muestra cómo crear un paquete que realiza una instalación anidada.

Más información

Para agregar una instalación anidada a un paquete mediante programación esta acción personalizada en las tablas de secuencia y creación de una acción de instalación anidados en la tabla CustomAction . El cuadro de destino de la tabla CustomAction contiene una cadena de valores de propiedad pública que utilizan 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 instalado 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 una aplicación anunciada en el equipo del usuario.
Contraer esta tablaAmpliar esta tabla
Tipo de acción personalizadaDescripción
Tipo de acción personalizado 7Instalación anidada de un producto que residen en el paquete de instalación.
Tipo de acción personalizado 23Instalación anidada de un paquete de instalador del árbol de origen actual.
Tipo de acción personalizado 39Instalación anidada de un paquete de instalador anunciado.
El siguiente es un ejemplo de cómo crear una acción personalizada de tipo 7 instalación anidados. El ejemplo 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 ejemplo siguiente se utiliza Basic.msi como paquete .msi de principal 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:
    -d Basic.msi - r nest.msi Msidb
    Esto agregará nest.msi en el archivo Basic.msi como subalmacenamiento. No aparecerá ningún cuadro de diálogo para confirmar que esto era correcta, pero aumentará el tamaño de archivo para Basic.msi.

    Nota No puede agregar nest.msi como subalmacenamiento utilizando la tabla Binary en Orca. Cuando agrega un archivo a un archivo 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 se 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 de la acción personalizada. Si tiene que pasar las propiedades públicas en el paquete anidado, puede utilizar el cuadro destino para este. Habrá dos acciones personalizadas, uno para instalar y otro para la desinstalación (que tiene un destino de "REMOVE = ALL"). Ésta es una tabla de ejemplo CustomAction :
    Contraer esta tablaAmpliar esta tabla
    AcciónTipoOrigenDestino
    InstallNest7Nest.msi
    UnInstallNest7Nest.msiQUITAR = ALL
  3. Programar la acción personalizada en la tabla InstallExecuteSequence . Hay instrucciones condicionales para el instalar y desinstalar acciones en la tabla InstallExecuteSequence . La condición enlazarán a un componente para la 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, se debe colocar la acción personalizada después CostFinalize . El siguiente es un ejemplo InstallExecuteSequence que asume que hay un componente en Basic.msi denominado "Comp_1" y condiciones de la instalación anidada según el estado de Comp_1):
    Contraer esta tablaAmpliar esta tabla
    AcciónCondiciónSecuencia
    InstallNest$ Comp_1 > 23110
    UnInstallNest$ Comp_1 < = 23120
Aunque puede crear una instalación de MSI anidada, hay inconvenientes 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 instalador no costo de una instalación anidada correctamente.
  • ProgressBars integrado no pueden utilizarse con instalaciones anidadas.
  • No puede instalar los recursos a anunciar la instalación anidada.
  • Un paquete que realiza una instalación anidada de una aplicación 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 número de artículo siguiente para verlo en Microsoft Knowledge Base:
255905Cómo utilizar el editor de base de datos Orca para editar archivos de Windows Installer

Propiedades

Id. de artículo: 306439 - Última revisión: domingo, 23 de julio de 2006 - Versión: 4.0
La información de este artículo se refiere a:
  • Microsoft Windows Installer 1.1
  • Microsoft Windows Installer 1.2
  • Microsoft Windows Installer 2.0
Palabras clave: 
kbmt kbhowto KB306439 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 306439
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para 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.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com