2012-04-07 33 views
8

Używam WiX, aby zainstalować instalator MSI w celu wywołania innego instalatora MSI.Instalator MSI wywołujący inny instalator MSI w trybie cichym przy użyciu WiX

  • Mogę rozwiązać tę sytuację w trybie UILevel = 5 (Full UI). Moje rozwiązanie polega na dodaniu CustomAction do tabeli UISequence, która wywołuje inny MSI. Kod błędu 1500 nie zostanie wyświetlony: "Trwa już inna instalacja ..."
  • Ale w trybie uśredniania, UILevel = 2, nie mogę tego zrobić, ponieważ działa tylko CustomAction w ExecuteSequence. Jak mogę uruchomić mój MSI w trybie cichym i zadzwonić do innego instalatora MSI?

Odpowiedz

1

Ściśle mówiąc pliki MSI są instalatorami transakcyjnymi, więc mogą występować tylko jeden na raz.

Microsoft radzi sobie z tym z modułami scalającymi, które są jak MSI, ale są używane do osadzania w plikach MSI.

Czy istnieje szansa, że ​​MSI, który chcesz osadzić, może zostać zmieniony na plik MSM?

+0

Myślałem, że to rozwiązanie. Oznacza to, że dziecko MSI osadza się w bazie danych macierzystego MSI. Ale nie mogę użyć tego rozwiązania, ponieważ mój podrzędny MSI może się zmienić po czasie kompilacji, macierzysty MSI może wywoływać go tylko poprzez CustomAction. – Klaus

-1

Możesz spróbować uruchomić drugi MSI z odroczoną asynchroniczną akcją niestandardową, bez sprawdzania kodu powrotu, zaplanowaną po standardowej akcji InstallFinalize. W ten sposób niestandardowa akcja zostanie uruchomiona po zakończeniu pierwszej instalacji.

+1

Wystąpi błąd, jeśli to zaplanujemy. Błąd 2762: Nie można zaplanować operacji. Akcja musi być zaplanowana między InstallInitialize i InstallFinalize. – Klaus

+0

Zapomniałem, że odłożona akcja niestandardowa nie może zostać zaplanowana po instalacji InstallFinalize. Możesz jednak spróbować bezpośrednio przed nim, po InstallExecute. –

7

Zainstaluj oba MSI z Burn bootstrapper dołączonym do wix 3.6.

+1

Rozumiem, że "Burn bootstrapper" rozwiąże problemy wstępne (NET 35, Java ...). Odpowiada to problemom "Msi wywoływać kolejne msi według niestandardowych działań"? Tak czy inaczej, to tylko dla mnie teraz. Mam nadzieję, że da się to zrobić! Dziękuję, panie! – Klaus

+0

@klaus: od linku podałem w powyższej odpowiedzi: "Pakiety umożliwiają również dzielenie bardzo dużych aplikacji lub zestawów aplikacji na mniejsze, logiczne pakiety instalacyjne, a jednocześnie prezentują pojedynczy produkt użytkownikowi końcowemu." –