我正在使用Windows Installer XML 3.0(WIX3)安装某些软件。
一切正常,但是,我很难处理以下用例:当用户尝试将其卸载时,已安装的软件仍在运行。默认行为似乎是删除所有文件,但允许应用程序运行(在我的情况下,这很难看到,因为它位于任务栏中)。
我在installer.wxs
文件中添加了以下代码:
<InstallExecuteSequence>
<Custom Action="WixCloseApplications" Before="RemoveFiles" />
</InstallExecuteSequence>
<util:CloseApplication Id="CloseFoobar"
CloseMessage="no"
Description="FooBar is still running!"
ElevatedCloseMessage="no"
RebootPrompt="no"
Target="foobar.exe" />
但这行不通-更糟糕的是,它显示一个对话框,要求在安装过程中重新启动!
正确的方法是什么?
最佳答案
据我所知,向您的UI添加以下引用就足够了:
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
CloseApplication东西仅用于在安装过程中关闭应用程序,但是它有问题(至少几个月前我尝试过,也许现在已经解决了?)
不幸的是,这再次是WiX文档非常差的一个示例,甚至没有记录像这样的标准安装/卸载方案。
关于wix - 在卸载过程中提示用户关闭应用程序(在WiX中),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/710647/