【发布时间】:2012-04-03 05:51:08
【问题描述】:
正如标题所说:在 C# 中,尤其是非托管原生 C++ 中是否有一种通用方法来确定已安装的 CLR 版本?这意味着不仅仅是检查框架是否按照this KB article 安装。我想通过使用 CLR 接口来做到这一点,就像 here 对 CLR1、CLR1.1 和 CLR2 所做的那样。通过这种方式,我可以确保它们确实已安装。但这不适用于 CLR4。有什么想法吗?
我的目标是创建可用 CLR 版本的枚举,例如 Clrver(不管进程列表功能)。
【问题讨论】:
-
我必须这样做的地方 我一直使用注册表方法,您引入的任何库都可能会做同样的事情。如果有更好的方法来做到这一点,那就太好了,但我认为没有。
-
我认为你是对的。问题是,在这种情况下,所有版本都必须是众所周知的,这也是 beta 版本的原因。但就像我发布的代码示例一样,有时可能还需要考虑 beta 版本。而且我认为必须有一种方法,因为 VS2008 的 CLRVER 在安装 .NET4 而不是 VS2010(以及新版本的 CLRVER)时也可以工作。因此,必须有一种方法可以在不完全了解它们的情况下检测所有已安装的 CLR 版本。
标签: c# c++ .net clr clr-hosting