在用户提示“手动关闭”之前卸载WiX呼叫应用程序

时间:2012-03-23 09:31:29

标签: windows installer wix

我有一个安装程序,它安装一个应用程序并在安装完成后立即启动它。这适合我。

但是现在我想在卸载应用程序时停止该应用程序,我不希望提示用户手动关闭应用程序。这应该全自动工作。

我使用自定义操作执行此操作,WM_CLOSE消息在我的方法中不起作用(实际上,我尝试了几次)。

我认为这不是那么困难,但我不能让它发挥作用。到目前为止我做了什么:

我定义了一个CustomAction:

<CustomAction Id="CloseTrayApp" ExeCommand="-exit" FileKey="TrayApp" Execute="immediate" Return="asyncNoWait" />

并称之为谎言:

<InstallExecuteSequence>
...
    <Custom Action="CloseTrayApp" Before="InstallValidate" />
...
</InstallExecuteSequence>

但这不起作用。我想我正在安排我的自定义操作错误,但我无法弄清楚它的正确时间。

关于自定义操作的时间/地点是否有任何建议?我不确定是否

Before="InstallValidate"

是正确的选择。

1 个答案:

答案 0 :(得分:3)

根据FilesInUse Dialog帮助主题,在InstallValidate是安排自定义操作的正确位置之前。但我很困惑为什么WM_CLOSE不适合你。我看到你问了另一个问题并接受了答案。也许您的TrayApp可能具有用户从未看到但正在运行以接收WM_CLOSE消息的“隐藏”形式。这是我多年来多次做过的一招。

否则,如果你真的想打电话给你的EXE,我建议永远不要使用EXE自定义动作。而是使用Quiet Execution Custom Action。出于某些原因,为什么要这样做,请参阅Integration Hurdles for EXE Custom Actions