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

Windows installer 完成第一个安装程序后运行第二个安装程序,windows-installer,Windows Installer,我已经创建了两个windows installer A.msi和B.msi。 我希望B.msi应该在A.msi完成后启动。 如何在.msi中添加启动另一个安装程序的功能。 我正在使用Wix 我在.wxs文件中添加CustomAction <CustomAction ExeCommand="cmd.exe /k msiexec.exe /i "[SourceDir]B.msi"" Return="asyncNoWait" Execute="immediate" Id="RunSecondMS

我已经创建了两个windows installer A.msi和B.msi。 我希望B.msi应该在A.msi完成后启动。 如何在.msi中添加启动另一个安装程序的功能。 我正在使用Wix

我在.wxs文件中添加CustomAction

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

未安装

谢谢

对于这种情况,您需要一个解决方案。您的问题似乎重复了

请尝试在InstallFinalize之后(在InstallExecuteSequence表中)通过计划的自定义操作启动第二个MSI。此自定义操作应使用msidbCustomActionTypeAsyncmsidbCustomActionTypeContinue标志(异步执行,不等待返回)

您不能直接启动另一个MSI,但可以尝试使用“cmd.exe/k”。例如:

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

SourceDir属性自动设置为包文件夹路径(我假设MSI文件在同一文件夹中)。

您好,您可以看到我添加的图像,其中我添加了名为RunSecondMSI的自定义操作并设置了其属性。现在如何设置msidbCustomActionTypeAsync和msidbCustomActionTypeContinue标志??在我必须编写命令“cmd.exe/k msiexec.exe/i”[SourceDir]B.msi”的地方,我做了一些有问题的修改。这些修改是否有效?您是否看到有问题的修改。这些修改似乎是正确的。请使用“.”转义EXECOMAND中的引号。此外,在InstallExecuteSequence中,自定义操作应在“之后”运行“InstallFinalize.Hi Cosmin,这个解决方案对我来说真的很有效。但是在完成A.msi后,屏幕上会出现一个命令行提示窗口,并一直保持到B.msi完成其安装过程。我们是否可以在execomand属性中写入任何语法,以便在点击B.msi命令行提示窗口时自动关闭?”。