0

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

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

谢谢

4

1 回答 1

0

我认为您必须执行类似于 Process Explorer 的操作:

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