在MSI安装程序中修复/删除应用程序时如何首先卸载正在使用应用程序的backgroud进程

时间:2019-03-01 08:54:51

标签: windows-installer repair

我在安装程序中添加了自定义操作“安装”,以在后台运行ProcessMonitor.exe。 ProcessMonitor是一个检查我的应用程序并删除不需要的/临时文件的应用程序。因此,当应用程序安装在目标计算机上时,它将在后台运行processMonitor.exe。现在,当我选择修复/删除选项时,它会显示错误消息:“以下应用程序正在使用安装程序必须更新的文件。您可以关闭该应用程序并单击“重试”或单击“继续”。

如果我手动终止ProcessMonitor的修复/删除选项,则工作成功。

在修复/删除的情况下,我想要一种方法在安装程序从目标文件夹复制/删除文件之前先杀死processMonitor.exe

1 个答案:

答案 0 :(得分:0)

  

延迟模式CA :要成功杀死提升的进程,您需要运行提升的进程。那   表示MSI中的延迟模式自定义操作。 您使用的是什么工具?

法律 :您是否检查过是否可以重新分发 ProcessMonitor.exe ?我不确定。我绝对会澄清这一点,以避免任何法律问题。 It is a free tool, but that does not necessarily mean you can deploy it with your own package (redistribute it) ,尽管由于它是一种成熟,成熟且享有盛誉的产品,所以可以允许使用。

Procmon.exe :该工具真的对您的产品有用吗?说实话,安装它是很奇怪的,因为它是一种专业工具,并且在常规用户手中通常是不可取的?如果需要它进行测试,则可以将其编译到调试设置中,然后从发行设置中将其删除。您在使用WiX吗? Try compiler variables / preprocessor constructs(请参阅底部的具体标记代码)。 Some more WiX variable details

关闭应用程序 procmon.exe中有一个内置功能可以自行关闭,如下所示,但是,还有许多其他方法可以可以工作。 Here is a quick list。还有here is another WMI approach Most tools should never be forcefully terminated, but this tool may be entirely read-only. I am not sure

终止 :您应该能够通过调用procmon.exe来终止procmon.exe实例,如下所示:procmon.exe /Terminate。但是,似乎它一次只能终止一个实例

运行Procmon.exe /?时可用的命令行参数列表:

Procmon.exe