多个MSI包的使用对话框中的WIX引导程序文件

时间:2017-08-25 12:07:37

标签: wix burn wix3.8

我创建了一个安装两个MSI软件包的WIX Bootstrapper应用程序。其中一个是一个简单的应用程序,可以通过关闭已经运行的实例而不重新启动来安装。另一个软件包安装了一个供Windows资源管理器使用的库,应始终需要重新启动。

因此,我想要的是如果简单的应用程序更新(当前正在运行)并且需要重新启动(并且显示更新资源管理器库时,使用对话框中的文件。

我尝试在安装Explorer库的MSI Installer项目中设置<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>但是没有效果。

我还尝试在引导程序应用程序中使用RegistrySearch来确定是否要更新资源管理器库,然后将ShowFilesInUse中的WixStandardBootstrapperApplication设置为“是”或“没有“因此,但遗憾的是我无法提供变量值。

所以我所能实现的是要么总是显示两个MSI包的使用对话文件,要么根本不显示它,并且总是需要重新启动。我能想到的唯一其他选择,可能是将安装Explorer库的MSI Bundle包装到另一个bootstrapper应用程序中并在那里设置ShowFilesInUse="no",但这看起来有点麻烦......是否有其他选择可以实现此?

1 个答案:

答案 0 :(得分:1)

<Property Id="MSIRESTARTMANAGERCONTROL" Value="DisableShutdown"/>添加到您的第一个MSI。这将禁用重新启动管理器,但仍允许“正在使用文件”对话框运行。继续在第二个MSI中使用<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>。似乎在安装过程中启用RM后,它将忽略其他要禁用的命令。