WIX 引导程序文件正在使用多个 MSI 包的对话框
WIX bootstrapper files in use dialog for multiple MSI packages
我创建了一个 WIX Bootstrapper 应用程序,它安装了两个 MSI 包。其中之一是一个简单的应用程序,只需关闭一个已经 运行 的实例即可安装,无需重新启动。另一个包安装了一个供 Windows Explorer 使用的库,应该总是需要重启。
因此,我想要的是如果简单应用程序已更新(当然是当前 运行)并需要重新启动(并且 不 更新资源管理器库时显示正在使用的文件对话框。
我尝试在安装 Explorer 库的 MSI 安装程序项目中设置 <Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
,但没有效果。
我还尝试在引导程序应用程序中使用 RegistrySearch
来确定是否要更新 Explorer 库,然后将 WixStandardBootstrapperApplication
中的 ShowFilesInUse
设置为 "yes" 或 "no",但不幸的是我无法提供变量作为值。
所以我所能做到的就是始终显示两个 MSI 包的正在使用的文件对话框,或者根本不显示它并且总是需要重新启动。我能想到的唯一其他选择可能是将安装 Explorer 库的 MSI Bundle 包装到另一个引导程序应用程序中并在那里设置 ShowFilesInUse="no"
,但这似乎有点麻烦......是否有其他选择可以实现这个?
将 <Property Id="MSIRESTARTMANAGERCONTROL" Value="DisableShutdown"/>
添加到您的第一个 MSI。这将禁用重新启动管理器,但仍允许“正在使用的文件”对话框运行。在第二个 MSI 中继续使用 <Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
。貌似在安装的时候启用了RM之后,它会忽略其他命令来禁用。
我创建了一个 WIX Bootstrapper 应用程序,它安装了两个 MSI 包。其中之一是一个简单的应用程序,只需关闭一个已经 运行 的实例即可安装,无需重新启动。另一个包安装了一个供 Windows Explorer 使用的库,应该总是需要重启。
因此,我想要的是如果简单应用程序已更新(当然是当前 运行)并需要重新启动(并且 不 更新资源管理器库时显示正在使用的文件对话框。
我尝试在安装 Explorer 库的 MSI 安装程序项目中设置 <Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
,但没有效果。
我还尝试在引导程序应用程序中使用 RegistrySearch
来确定是否要更新 Explorer 库,然后将 WixStandardBootstrapperApplication
中的 ShowFilesInUse
设置为 "yes" 或 "no",但不幸的是我无法提供变量作为值。
所以我所能做到的就是始终显示两个 MSI 包的正在使用的文件对话框,或者根本不显示它并且总是需要重新启动。我能想到的唯一其他选择可能是将安装 Explorer 库的 MSI Bundle 包装到另一个引导程序应用程序中并在那里设置 ShowFilesInUse="no"
,但这似乎有点麻烦......是否有其他选择可以实现这个?
将 <Property Id="MSIRESTARTMANAGERCONTROL" Value="DisableShutdown"/>
添加到您的第一个 MSI。这将禁用重新启动管理器,但仍允许“正在使用的文件”对话框运行。在第二个 MSI 中继续使用 <Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
。貌似在安装的时候启用了RM之后,它会忽略其他命令来禁用。