我创建了两个windows-installer A.msi和B.msi。 我希望B.msi应该在完成A.msi之后开始。 如何在A.msi中添加一些启动另一个安装程序的功能。 我正在使用Wix。
我在.wxs文件中添加CustomAction
<CustomAction ExeCommand="cmd.exe /k msiexec.exe /i "[SourceDir]B.msi"" Return="asyncNoWait" Execute="immediate" Id="RunSecondMSI" />
AND在InstallExecuteSequence表中
<InstallExecuteSequence>
<Custom Action="RunSecondMSI" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
由于
答案 0 :(得分:2)
尝试通过InstallFinalize之后安排的自定义操作启动第二个MSI(在InstallExecuteSequence表中)。此自定义操作应使用 msidbCustomActionTypeAsync 和 msidbCustomActionTypeContinue 标志(异步执行,不要等待返回)。
您无法直接启动其他MSI,但可以尝试使用“cmd.exe / k”。例如:
cmd.exe /k msiexec.exe /i "[SourceDir]B.msi"
SourceDir属性自动设置为包文件夹路径(我假设MSI文件位于同一文件夹中)。
答案 1 :(得分:1)
这种情况需要bootstrapper。您的问题似乎与this one
重复