Запустите второй установщик после завершения первого - PullRequest
2 голосов
/ 02 декабря 2010

Я создал два окна-установщика A.msi и B.msi. Я хочу, чтобы B.msi начинался после завершения A.msi. Как я могу добавить некоторые функции в A.msi, которые запускают другой установщик. Я использую Wix.

Я добавляю CustomAction в файл .wxs

<CustomAction ExeCommand="cmd.exe /k msiexec.exe /i "[SourceDir]B.msi"" Return="asyncNoWait" Execute="immediate" Id="RunSecondMSI"  /> 

И в таблице InstallExecuteSequence

<InstallExecuteSequence>
 <Custom Action="RunSecondMSI" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence> 

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 декабря 2010

Попробуйте запустить второй MSI с помощью пользовательского действия, запланированного после InstallFinalize (в таблице InstallExecuteSequence). Это пользовательское действие должно использовать флаги msidbCustomActionTypeAsync и msidbCustomActionTypeContinue (асинхронное выполнение, не ждите возврата).

Вы не можете запустить другой MSI напрямую, но вы можете попробовать использовать "cmd.exe / k". Например:

cmd.exe /k msiexec.exe /i "[SourceDir]B.msi"

Свойству SourceDir автоматически присваивается путь к папке пакета (я предполагал, что файлы MSI находятся в той же папке).

1 голос
/ 02 декабря 2010

Вам нужен загрузчик для такого рода сценариев.Ваш вопрос, кажется, дублирует этот

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...