Wix-如何通过自定义操作强制终止任何进程?

Wix-如何通过自定义操作强制终止任何进程?,wix,windows-installer,uninstallation,custom-action,Wix,Windows Installer,Uninstallation,Custom Action,我创建了一个msi并安装了它,但在卸载过程中遇到了一个问题。我想在通过自定义操作-wix卸载之前强制关闭应用程序 我找了很多,但没有找到任何解决办法。 我想要一个类似这样的解决方案 <Property Id="QtExecCmdLine" Value='"[SystemFolder]taskkill.exe" /F /IM ConfigurationManager.exe /t'/> <CustomAction Id="StopUserExe" BinaryKey="

我创建了一个msi并安装了它,但在卸载过程中遇到了一个问题。我想在通过自定义操作-wix卸载之前强制关闭应用程序 我找了很多,但没有找到任何解决办法。 我想要一个类似这样的解决方案

<Property Id="QtExecCmdLine" Value='"[SystemFolder]taskkill.exe" /F /IM ConfigurationManager.exe     /t'/> 
<CustomAction Id="StopUserExe" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate"     Return="ignore"/>

<InstallExecuteSequence>
  <Custom Action='StopUserExe' Before='RemoveFiles'></Custom>
</InstallExecuteSequence>

你试过了吗

例如:

<CustomAction Id="TaskKill" Execute="deferred" ExeCommand="taskkill /f /im notepad.exe" />


在自定义操作中,您可以枚举进程(EnumProcesses())并为所需进程调用TerminateProcess()

上面的解决方案有什么问题?它不会退出我的应用程序。我已经尝试过了。当我手动执行taskkill命令时,它会给出“拒绝访问”错误。但当我以管理员身份运行cmd.exe时,命令成功执行。我不知道如何在CstomAction命令中授予管理权限。在某个时刻,.msi包应该自动请求提升。请注意中的“执行”枚举,也请注意。您必须在安装程序提升(例如,
1
其工作状态)后执行。从昨天起我就一直在努力解决这个问题。非常感谢:)我也在做同样的事情,但它对我不起作用。还有其他方法吗?从我的角度看,这已经不起作用了。当MSI尝试运行此操作时,我也会收到一个错误。