WIX引导程序文件正在使用对话框用于多个MSI程序包

问题描述:

我已经创建了一个WIX Bootstrapper应用程序来安装两个MSI程序包。其中之一是一个简单的应用程序,可以通过关闭已经运行的实例来安装,而无需重启。另一个软件包安装Windows资源管理器使用的库,并且应始终要求重新启动。WIX引导程序文件正在使用对话框用于多个MSI程序包

因此,我想有是,如果简单的应用程序更新为显示在使用对话框中的文件(和当前正在运行的进程),并需要重新启动(和显示使用对话框中的文件)当Explorer库更新时。

我试图在MSI安装程序项目中设置<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>,该项目安装了Explorer库,但没有任何效果。

我也是在引导器应用使用RegistrySearch确定浏览器库是否将被更新,然后设置ShowFilesInUseWixStandardBootstrapperApplication为“yes”或“no”。因此,只可惜我不能提供可变尝试作为价值。

因此,我所能做到的只是要么始终显示MSI软件包中正在使用的文件对话框,要么根本不显示它,并且始终需要重新启动。我能想到的唯一的其他选择,可能是将安装Explorer库的MSI Bundle包装到另一个引导程序应用程序中,并在那里设置ShowFilesInUse="no",但这似乎有点麻烦......是否有另外一个选项可以实现此目的?

+0

只是澄清:如果文件实际上正在使用,您正在寻找MSI#1显示使用中的文件对话框。如果更新Explorer资源库,您正在寻找MSI#2强制重新启动。而这两项行动并非互为条件,对吗? – philselmer

+0

这正是我正在寻找的,正确的。 –

+1

尝试对MSI#1使用值DisableShutdown,该值仍将显示正在使用的文件对话框,但会阻止重新启动管理器参与。我的想法是,阻止在第一个MSI中使用RM可能会允许第二个MSI成功禁用它(值为Disable)。 – philselmer

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