如何确定哪些正在运行的应用程序正在使用.Net

时间:2014-11-06 09:40:04

标签: .net wix installation install iexpress

我有一个应用程序,它使用需要.Net 4.0的第三方dll 所以,我用我的安装程序使用iexpress打包.Net exe,这是使用Wix创建的 但是,后来我才知道安装.Net 4.0后需要重启机器,因为它的一些文件可能正在使用中。
安装我的应用程序后,我不希望我的用户重启机器 我认为更好的方法是预先显示所有正在运行的应用程序正在使用.Net,以便他们可以关闭这些应用程序并继续安装而无需重新启动。

如何检测正在使用.Net的正在运行的应用程序?

由于

1 个答案:

答案 0 :(得分:0)

我认为你必须做类似于Process Explorer的事情:

  1. 使用CLSID_CLRMetaHost。{/ li>调用CLRCreateInstance函数
  2. 枚举系统上的每个进程,然后为每个进程调用ICLRMetaHost::EnumerateLoadedRuntimes方法。
  3. 对于返回的每个运行时,调用ICLRRuntimeInfo::GetVersionString方法并检查它是否返回了.NET 4.0的版本字符串。