使用WiX卸载后如何终止进程

时间:2019-05-21 12:20:40

标签: wix windows-installer

我正在使用Wix创建.msi安装文件。 当我卸载应用程序时,它仍然可以正常工作,并且可以在任务管理器中看到它。

我已经尝试按照Wix文档中的描述执行自定义操作的延迟执行: https://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html 但不幸的是,它无法与我配合。 我要执行的命令是“ taskkill / f / im myProcess.exe”

<Property Id="myProcessKill" Value="taskkill /f /im myProcess.exe"/>
<CustomAction Id="myProcessKill" BinaryKey="WixCA" DllEntry="WixQuietExec"
            Execute="deferred" Return="check" Impersonate="no"/>

<InstallExecuteSequence>
  <Custom Action="myProcessKill" After="InstallValidate"/>
</InstallExecuteSequence>

这使我的msi文件在安装过程中出现错误。 如果我将Return =“ check”更改为Return =“ ignore”,则msi将完成安装,但在卸载时不会终止我的进程。 上面的代码有什么问题?还是在卸载时还有其他方法可以杀死我的进程? 预先感谢

2 个答案:

答案 0 :(得分:1)

在您遇到的情况下,尝试使用带有引号的<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <input type="number" v-model="data1"> <input type="number" v-model="data2"> <h1> Method from Template </h1> <p>result: {{ sum(data1, 1) }}</p> <p>result: {{ sum(data2, 2) }}</p> <h1> Method from Computed </h1> <p>c-result: {{computed1}}</p> <p>c-result: {{computed2}}</p> <h1> Invoked From Data Init </h1> <p>result: {{result1}}</p> <p>result: {{result2}}</p> </div>并将cmd.exe传递给

taskkill

我也不确定您的自定义操作顺序,至少您应该添加<Property Id="myProcessKill" Value="&quot;c:\windows\system32\cmd.exe&quot; /c taskkill /f /im myProcess.exe"/> 。在我们的应用中,我们正在使用REMOVE="ALL"

答案 1 :(得分:1)

也许尝试:WiX's CloseApplication Element。在尝试其他方法以避免对任何二进制文件的依赖之前,我会先尝试一下。 Found this sample on github.com(未试用)。