wix - 在卸载过程中提示用户关闭应用程序(在 WiX 中)

标签 wix uninstallation

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

相关文章:

wix - 使用 WIX 通过脚本而不是 SQLDatabase 元素创建数据库

c# - 来自另一个使用 WiX 的项目的引用版本字符串

Wix Burn Bundle - 必须是管理员

wix - 在 WIX 中运行时为快捷方式动态分配名称

linux - 你如何在 *nix 中卸载?

wix - 如何跳过 WIX 生成的安装程序中的功能选择屏幕?

mysql - 如何干净地重新安装 zoneminder?

c++ - 如何删除可执行文件所在的文件夹

ios - 应用程序删除和 APNS

c# - 如何使用 C# 卸载 USB 设备