我正在使用 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/