WIX引导程序文件正在使用对话框用于多个MSI程序包
我已经创建了一个WIX Bootstrapper应用程序来安装两个MSI程序包。其中之一是一个简单的应用程序,可以通过关闭已经运行的实例来安装,而无需重启。另一个软件包安装Windows资源管理器使用的库,并且应始终要求重新启动。WIX引导程序文件正在使用对话框用于多个MSI程序包
因此,我想有是,如果简单的应用程序更新为显示在使用对话框中的文件(和当前正在运行的进程),并需要重新启动(和不显示使用对话框中的文件)当Explorer库更新时。
我试图在MSI安装程序项目中设置<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
,该项目安装了Explorer库,但没有任何效果。
我也是在引导器应用使用RegistrySearch
确定浏览器库是否将被更新,然后设置ShowFilesInUse
在WixStandardBootstrapperApplication
为“yes”或“no”。因此,只可惜我不能提供可变尝试作为价值。
因此,我所能做到的只是要么始终显示MSI软件包中正在使用的文件对话框,要么根本不显示它,并且始终需要重新启动。我能想到的唯一的其他选择,可能是将安装Explorer库的MSI Bundle包装到另一个引导程序应用程序中,并在那里设置ShowFilesInUse="no"
,但这似乎有点麻烦......是否有另外一个选项可以实现此目的?
将<Property Id="MSIRESTARTMANAGERCONTROL" Value="DisableShutdown"/>
添加到您的第一个MSI。这将禁用重新启动管理器,但仍允许“正在使用的文件”对话框进行操作。在第二个MSI中继续使用<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
。似乎一旦在安装过程中启用了RM,它将忽略其他要禁用的命令。
只是澄清:如果文件实际上正在使用,您正在寻找MSI#1显示使用中的文件对话框。如果更新Explorer资源库,您正在寻找MSI#2强制重新启动。而这两项行动并非互为条件,对吗? – philselmer
这正是我正在寻找的,正确的。 –
尝试对MSI#1使用值DisableShutdown,该值仍将显示正在使用的文件对话框,但会阻止重新启动管理器参与。我的想法是,阻止在第一个MSI中使用RM可能会允许第二个MSI成功禁用它(值为Disable)。 – philselmer