본문 바로가기
C#

[C#] .NET Framework 버전 확인

by Jcoder 2021. 4. 27.

설치된 .NET Framework 버전 확인 | Microsoft Docs

 

설치된 .NET Framework 버전 확인

코드, regedit.exe 또는 PowerShell을 사용하여 Windows 레지스트리를 쿼리하는 방법으로 컴퓨터에 설치된 .NET Framework 버전을 검색합니다.

docs.microsoft.com

결과

Environment.Version -> 5.0.5

RuntimeInformation.FrameworkDescription -> .NET 5.0.5

using Microsoft.Win32;
using System;

namespace CsharpTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.WriteLine($"{Environment.Version}");

            const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
            if (OperatingSystem.IsWindows())
            {
                using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
                {
                    if (ndpKey != null && ndpKey.GetValue("Release") != null)
                    {
                        Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion((int)ndpKey.GetValue("Release"))}");
                    }
                    else
                    {
                        Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
                    }
                }
            }

            // Checking the version using >= enables forward compatibility.
            static string CheckFor45PlusVersion(int releaseKey)
            {
                if (releaseKey >= 528040)
                    return "4.8 or later";
                if (releaseKey >= 461808)
                    return "4.7.2";
                if (releaseKey >= 461308)
                    return "4.7.1";
                if (releaseKey >= 460798)
                    return "4.7";
                if (releaseKey >= 394802)
                    return "4.6.2";
                if (releaseKey >= 394254)
                    return "4.6.1";
                if (releaseKey >= 393295)
                    return "4.6";
                if (releaseKey >= 379893)
                    return "4.5.2";
                if (releaseKey >= 378675)
                    return "4.5.1";
                if (releaseKey >= 378389)
                    return "4.5";
                // This code should never execute. A non-null release key should mean
                // that 4.5 or later is installed.
                return "No 4.5 or later version detected";
            }
            Console.WriteLine($"RuntimeInformation.FrameworkDescription: {System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription}");
            Console.ReadLine();
        }
    }
}

'C#' 카테고리의 다른 글

[C#] Slack Message 보내기  (0) 2021.06.01
[C#] Mail 보내기  (0) 2021.05.04
[C#] WPF - OpenCV, Cam 출력  (0) 2021.04.16
[C#] 윈도우 마이크 컨트롤 2 (AudioSwitcher, NAudio)  (0) 2021.04.13
[C#] Async/Await, Task.result  (0) 2021.04.12