如何获取应用程序正在使用的.NET框架版本

LCJ*_*LCJ 6 c#

我已经提到了Stack Overflow问题有没有一种简单的方法来检查.NET Framework版本?.但是那里给出的建议并不适用于以下目的.

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

环境:

  • Visual Studio 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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

产量

在此输入图像描述

版本设置

在此输入图像描述

ZZZ*_*ZZZ 2

第二个和第三个接近的是CLR version numbers

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

而且没有 CLR 3.0 或 3.5。