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

如何确定哪些正在运行的应用程序正在使用.Net,.net,wix,installation,iexpress,.net,Wix,Installation,Iexpress,我有一个应用程序使用需要.Net 4.0的第三方DLL。 因此,我使用iexpress将.Net exe打包到使用Wix创建的安装程序中。 但是,后来我才知道安装.Net 4.0后需要重新启动计算机,因为它的一些文件可能正在使用中。 我不希望用户在安装应用程序后重新启动计算机。 我认为更好的方法是预先显示所有正在运行的应用程序正在使用的.Net,这样它们就可以关闭这些应用程序并继续安装,而无需重新启动 如何检测这些正在运行的使用.Net的应用程序 谢谢我认为您必须执行与Process Explo

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

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


谢谢

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

  • 使用
    CLSID\u CLRMetaHost
    调用函数
  • 枚举系统上的每个进程,然后为每个进程调用方法
  • 对于返回的每个运行时,调用该方法并检查它是否返回.NET 4.0的版本字符串