Wix 的 util:CloseApplication 扩展似乎不起作用

Dan*_*fer 6 wix close-application

我正在尝试在使用 Wix 卸载之前关闭进程。我已经确认只要有一个可见的窗口它就可以工作,但是如果没有一个可见的窗口(这个应用程序大部分时间都是这种情况,因为它是一个系统托盘应用程序),卸载程序就会挂起,并且最终继续卸载,让进程继续运行。

根据此论坛帖子,Wix 过去似乎在关闭最小化应用程序时遇到问题,所以我想知道这是否相关?

关于我还能做些什么来确保进程关闭的任何建议?有什么办法可以尝试使用 Win32 api 在我的应用程序中捕获消息吗?

这是 CloseApplication 声明:

<util:CloseApplication Id="CloseApp" CloseMessage="yes" Target="App.exe" RebootPrompt="yes" />
Run Code Online (Sandbox Code Playgroud)

这是自定义操作:

<Custom Before="InstallInitialize" Action="WixCloseApplications">REMOVE = "ALL"</Custom>
Run Code Online (Sandbox Code Playgroud)

Rob*_*ing 5

看起来您是WixCloseApplications在安装事务之前安排自定义操作。自定义操作的工作方式是安排了实际关闭应用程序的延迟操作。它无法完成这项工作,除非它发生在事务 ( After="InstallInitialize")期间。

修复可能很容易。移除Custom/@Action="WixCloseApplications"元素。