完成第一个后运行第二个安装程序

时间:2010-12-02 10:43:32

标签: windows-installer

我创建了两个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> 

由于

2 个答案:

答案 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

重复