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

10-14 03:46