卸载期间终止进程。 [英] Terminating process during uninstallation.

查看:133
本文介绍了卸载期间终止进程。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一种情况,我没有看到任何干净的解决方案。我的应用程序启动后台进程,由于某种原因,该进程一直在用户系统上运行。但是,在
uninstalltion期间,在Win7上,此过程显示在MsiRMFilesInUse对话框中,尽管在WinXP上没有产生预期的问题。问题是我不希望用户在FilesInUse中看到这个过程,原因很明显,不会让用户混淆他们无法关闭的进程

我尝试了一种拦截文件成本核算期间填充的FilesInUse表并删除相关记录的技术。但是,似乎MsiGetActiveDatabase无法读取临时的
表。

第二种技术是制作阻止文件永久包括此进程的.exe,然后通过RemoveFiles表删除它们。但是,安装程序不会删除
,因为我认为组件已标记为永久性。我不希望CA这个,因为它可能不会考虑参考。计算并考虑处理参考。计数似乎不是一个干净的解决方案。

第三种技巧I applied是使用Restart Manager api来处理这个问题,但仍然没有任何结果。

最后是我会在验证/文件成本核算之前关闭进程。但随后回滚可能会受到影响。

I现在不知道做任何其他事情..

谢谢

推荐答案

您好onsAdb,

Hi onsAdb,

如何使用设置上的自定义操作,覆盖 OnBeforeUninstall 检查并终止进程的方法。基于
您的描述,很难通过MSI内部条件和表来停止进程。所以我认为您可以尝试使用此自定义操作在.Net框架下处理它。希望这可以帮助。相关文档:
http://msdn.microsoft.com/en-us/library/d9k65z2d .aspx

How about to use custom action on the setup, override the OnBeforeUninstall method to check and kill the process. Based on your description, it is hard to code to stop the process by MSI inner condition and table. So I think you could try to use this custom action to handle it under .Net framework. Hope this helps. Related document: http://msdn.microsoft.com/en-us/library/d9k65z2d.aspx

此致,


这篇关于卸载期间终止进程。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆