【问题标题】:How to determine which running applications are using .Net如何确定哪些正在运行的应用程序正在使用 .Net
【发布时间】:2014-11-06 09:40:03
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: .net wix installation iexpress


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-13
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多