C# detect latest .net framework installed on PC

using Microsoft.Win32;

static void Main(string[] args)
        {
            GetDotNetFrameworkVersion();
            Console.ReadLine();
        }

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

        //Convert the Main.Minor.Build.Revision
        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>=393295)
            {
                return "4.5.2";
            }

            if(releaseKey>=378675)
            {
                return "4.5.1";
            }

            if(releaseKey>=378389)
            {
                return "4.5";
            }

            return "No 4.5 or later version detected!";
        }

猜你喜欢

转载自www.cnblogs.com/Fred1987/p/11954327.html