如何在运行卸载程序之前自动停止应用程序?

问题描述:

在我的安装包中,我有一个允许停止我的主应用程序的工具。
我需要在卸载我的应用程序时自动运行此工具。
我创建了自定义操作并在InstallInitialize之前或之后启动它。
但它没有帮助。
消息“继续安装之前应关闭下列应用程序”仍然出现。
只有当我点击该对话框中的OK按钮时,脚本才会执行。
如何在通知之前开始自定义操作“在继续安装之前,应关闭以下应用程序”?如何在运行卸载程序之前自动停止应用程序?

InstallValidate之前的自定义停止操作由于某种原因没有帮助。这需要逼抢应用的

<InstallExecuteSequence> 
    <Custom Action='StopApplication' Before="InstallValidate"/> 
</InstallExecuteSequence> 

<CustomAction Id="StopApplication" 
    FileKey="stopServer.cmd" 
    ExeCommand="" 
    Execute="immediate" 
    Impersonate="yes" 
    Return="ignore" /> 

检测是由InstallValidate操作完成的,所以你需要有之前您的CA。 InstallInitialize太晚之后。这意味着它需要立即标记。

p.s. WiX有一个用于此的util CloseApp,可能适用于该应用程序。

+0

InstallValidate之前的自定义操作没有帮助。请参阅更新。 – 2014-10-13 07:24:53

+0

在InstallValidate是正确的位置之前,如果它不起作用,它可能无法运行或找到该cmd文件。您是否尝试过使用WiX CloseApp? – PhilDW 2014-10-13 15:51:24

+0

我需要调用一些工具来正确地停止我的服务器。 – 2014-10-13 16:27:13