2012-04-07 15 views
8

sto usando WiX di fare un programma di installazione MSI per chiamare un altro programma di installazione MSI.di installazione MSI a chiamare un altro programma di installazione MSI in modalità silenziosa con WiX

  • Posso risolvere questa situazione in UILevel = 5 (modalità dell'interfaccia utente completa). La mia soluzione è aggiungere una CustomAction alla tabella UISequence che chiama un altro MSI. Non verrà visualizzato il codice di errore 1500: "Un'altra installazione è già in corso ..."
  • Ma in modalità slient, UILevel = 2, non riesco a farlo perché esegue solo CustomAction in ExecuteSequence. Come posso eseguire il mio MSI in modalità silenziosa e chiamare un altro programma di installazione MSI?

risposta

1

I file MSI in senso stretto sono programmi di installazione transazionale quindi possono essere eseguiti solo uno alla volta.

Microsoft aggira questo problema con moduli unione che sono come MSI ma vengono utilizzati per l'incorporamento nei file MSI.

Qualsiasi possibilità che l'MSI che si desidera incorporare possa essere modificato in un file MSM?

+0

Ho pensato questa soluzione. Significa che l'MSI secondario incorpora nel database MSI principale. Ma non posso usare questa soluzione perché il mio figlio MSI può cambiare dopo la compilazione, genitore MSI può solo chiamarlo tramite CustomAction. – Klaus

-1

Si potrebbe provare ad avviare il secondo MSI con un'azione personalizzata asincrona posticipata, senza controllo del codice di ritorno, pianificato dopo l'azione standard InstallFinalize. In questo modo l'azione personalizzata verrà avviata quando il primo avrà terminato l'installazione.

+1

Si è verificato un errore se lo programmiamo. Errore 2762: impossibile pianificare l'operazione. L'azione deve essere pianificata tra InstallInitialize e InstallFinalize. – Klaus

+0

Ho dimenticato che non è possibile pianificare un'azione personalizzata posticipata dopo InstallFinalize. Tuttavia, puoi provare subito prima, dopo InstallExecute. –

7

Installare entrambi gli MSI con Burn bootstrapper incluso con wix 3.6.

+1

Capisco che "Burn bootstrapper" risolverà i prerequisiti (NET 35, Java ...). È appropriato con problemi "Msi chiama un altro msi per azione personalizzata"? Ad ogni modo, è l'unico modo per me ora. Spero che possa essere fatto! Grazie signore! – Klaus

+0

@klaus: dal link che ho fornito nella mia risposta di cui sopra: "I pacchetti consentono anche a applicazioni o suite di applicazioni molto grandi di essere suddivisi in pacchetti di installazione logici più piccoli, pur continuando a presentare un singolo prodotto all'utente finale." –