2012-04-07 15 views
8

Estoy usando WiX para hacer que un instalador MSI llame a otro instalador MSI.Instalador MSI llamando a otro instalador MSI en modo silencioso usando WiX

  • Puedo resolver esta situación en el modo UILevel = 5 (IU completa). Mi solución es agregar una CustomAction a la tabla UISequence que llame a otra MSI. No recibirá el código de error 1500: "Otra instalación ya está en progreso ..."
  • Pero en modo slient, UILevel = 2, no puedo hacerlo, porque solo ejecuta CustomAction en ExecuteSequence. ¿Cómo puedo ejecutar mi MSI en modo silencioso y llamar a otro instalador de MSI?

Respuesta

1

Estrictamente hablando, los archivos MSI son instaladores transaccionales, por lo que solo pueden ocurrir uno a la vez.

Microsoft soluciona esto con módulos de combinación que son como MSI pero que se usan para incrustación en archivos MSI.

¿Hay alguna posibilidad de que la MSI que desea incrustar se pueda cambiar para que sea un archivo MSM?

+0

Pensé en esta solución. Significa que MSI hijo incrustado en la base de datos de MSI principal. Pero no puedo usar esta solución porque mi hijo MSI puede cambiar después del tiempo de compilación, MSI padre solo puede llamarlo a través de CustomAction. – Klaus

-1

Puede intentar iniciar el segundo MSI con una acción personalizada asíncrona diferida, sin verificación de código de retorno, programada después de la acción estándar de InstallFinalize. De esta forma, la acción personalizada se lanzaría cuando la primera se haya terminado de instalar.

+1

Se producirá un error si programamos esto. Error 2762: no se puede programar la operación. La acción debe programarse entre InstallInitialize e InstallFinalize. – Klaus

+0

Olvidé que una acción personalizada diferida no se puede programar después de InstallFinalize. Sin embargo, puede intentarlo justo antes, después de InstallExecute. –

7

Instale ambos MSI con el Burn bootstrapper incluido con wix 3.6.

+1

Entiendo que "Burn bootstrapper" resolverá los problemas previos (NET 35, Java ...). ¿Es apropiado con problemas de "Msi llamar a otro msi por acción personalizada"? De todos modos, es la única forma para mí ahora. Espero que se pueda hacer! ¡Gracias señor! – Klaus

+0

@klaus: del enlace que brindé en mi respuesta anterior: "Los lotes también permiten dividir grandes aplicaciones o conjuntos de aplicaciones en paquetes de instalación más pequeños y lógicos, al tiempo que presentan un solo producto para el usuario final". –

Cuestiones relacionadas