C# 获取系统已安装的.NET版本

获取系统已安装的.NET版本,来确定当前应用可运行的环境。

 

微软已经有相应的完整文档,请参考:确定已安装的 .NET Framework 版本 - .NET Framework | Microsoft Docs

Release根据文档描述是版本密钥,应该是类似版本构建号,能够判断是否已安装.NET。

Version是.NetFramework的版本

我整理了下获取Version的方法,方便大家获取:

复制代码
 1     private Version GetFrameworkVersion()
 2     {
 3         string registerKey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
 4         var defaultVersion = new Version(0, 0);
 5         try
 6         {
 7             using (var sub = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(registerKey))
 8             {
 9                 if (!(sub?.GetValue("Release") is int key))
10                     return defaultVersion;
11 
12                 //判断
13                 if (key >= 528040)
14                     return new Version(4, 8);
15                 if (key >= 461808)
16                     return new Version(4, 7, 2);
17                 if (key >= 461308)
18                     return new Version(4, 7, 1);
19                 if (key >= 460798)
20                     return new Version(4, 7);
21                 if (key >= 394802)
22                     return new Version(4, 6, 2);
23                 if (key >= 394254)
24                     return new Version(4, 6, 1);
25                 if (key >= 393295)
26                     return new Version(4, 6);
27                 if (key >= 379893)
28                     return new Version(4, 5, 2);
29                 if (key >= 378675)
30                     return new Version(4, 5, 1);
31                 if (key >= 378389)
32                     return new Version(4, 5);
33             }
34         }
35         catch (Exception)
36         {
37             // ignored
38         }
39         //小于4.5,一般不存在这个环境
40         return new Version(0, 0);
41     }
复制代码

 

注:如果需要快速获取电脑的.NET版本,可以通过PowerShell查看

(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client' -Name Version).Version

 

posted @   唐宋元明清2188  阅读(412)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
历史上的今天:
2020-07-14 前端 引用svg图片,支持动态切换颜色
点击右上角即可分享
微信分享提示
剑桥
16:15发布
剑桥
16:15发布
7°
西南风
3级
空气质量
相对湿度
66%
今天
2°/10°
周三
2°/8°
周四
中雨
2°/7°