7

我提到了堆栈溢出问题是否有一种简单的方法来检查 .NET Framework 版本?. 但是那里给出的建议不适用于以下目的。

我们如何识别 C# 控制台应用程序正在使用的 .NET 版本?

环境:

  • 视觉工作室 2010
  • .NET Framework:3.5(请参见随附的屏幕截图)

代码

using System;
using System.Globalization;
using Microsoft.Win32;
namespace TESTConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            //.NET version: Approach 1
            RegistryKey installed_versions = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP");
            string[] version_names = installed_versions.GetSubKeyNames();
            double latestFramework = Convert.ToDouble(version_names[version_names.Length - 1].Remove(0, 1), CultureInfo.InvariantCulture);
            int SP = Convert.ToInt32(installed_versions.OpenSubKey(version_names[version_names.Length - 1]).GetValue("SP", 0));
            Console.WriteLine(latestFramework);

            //Approach 2
            string versionval = Environment.Version.ToString();
            Console.WriteLine(versionval);

            //Approach 3
            string systemVersionVal = System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion().ToString();
            Console.WriteLine(systemVersionVal);

            Console.ReadLine();
        }
    }
}

输出

在此处输入图像描述

版本设置

在此处输入图像描述

4

1 回答 1

2

接近的第 2 和第 3 是CLR version numbers.

.NET Framework 2 和 .NET Framework 3.5 正在使用CLR 2.0.

而且没有 CLR 3.0 或 3.5。

于 2013-02-28T06:07:38.747 回答