【问题标题】:Determine highest .NET Framework version [duplicate]确定最高的 .NET Framework 版本 [重复]
【发布时间】:2008-10-08 13:58:50
【问题描述】:

我需要通过 C\C++ 代码确定桌面计算机上安装的最高 .NET 框架版本。看起来我可以迭代%systemroot%\Microsoft.NET\Framework 下的文件夹,但这似乎很容易出错。有没有更好的办法?也许我可以检查一个注册表项?谢谢。

【问题讨论】:

    标签: .net c++ c version-detection


    【解决方案1】:

    使用Windows Registry 位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP

    【讨论】:

    • 是的,HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP 应该更容易一些。看起来我必须迭代子键,然后查询版本值。谢谢。
    【解决方案2】:

    .NET Framework 的注册表项如下所示:

    HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\
    

    根据版本不同,其余密钥会有所不同(请查看this page)。

    您可以在 MSDN 文章中查看如何访问注册表Using the registry in a C++ application

    【讨论】:

      【解决方案3】:

      如果您尝试从托管代码执行此操作,请查看article,它包含了确定是否安装了特定框架版本所需的所有逻辑。

      否则,请查看 Aaron 的博文 here,它提供了 C/C++ 方法来做同样的事情。

      【讨论】:

        【解决方案4】:

        下面应该会给你答案,但它似乎很糟糕:(

        c:\Program Files>clrver
        Versions installed on the machine:
        v2.0.50727
        

        【讨论】:

        • CLR 版本不一定与 .Net 版本相同。 .Net v2.0 比 v1.1 更新了 CLR,但是 .Net v3.0 & v3.5 并没有改变 CLR,所以它仍然是“V2.0.50727”
        猜你喜欢
        • 2011-03-28
        • 1970-01-01
        • 2015-05-14
        • 2011-03-14
        • 2010-10-15
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多