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

C# 获取系统已安装的.NET版本的更多相关文章
- 查看已安装的CentOS版本信息:
如何查看已安装的CentOS版本信息: 1)[root@localhost ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@ ...
- 利用RxJava获取手机已安装的App的图片、应用名称和版本号
先上效果图: 获取手机已安装的App列表利用Android系统API就可以办到,这里为什么要引入RxJava?现在我们假设一下有下面几个需求: 1.我们不需要所有的App,只需要用户安装的第三方App ...
- Android中获取系统上安装的APP信息
Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00003259 Android中获取系统上安装的APP信 ...
- 如何查看已安装的CentOS版本信息
如何查看已安装的CentOS版本信息: 1)[root@localhost ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@ ...
- iOS11 获取手机已安装应用列表
在iOS 11 以前我们可以使用LSApplicationWorkspace来获取手机上已安装的应用列表 iOS 11 上获取所有已安装应用接口被禁,但可以根据BundleId检查App是否存在 - ...
- 获取手机已安装应用的name,bundleIdentitifer
获取手机已安装应用的name,bundleIdentitifer Class c =NSClassFromString(@"LSApplicationWorkspace"); id ...
- ie使用已安装的最高版本ie代码,及ie下不要在结尾处写多余的逗号“,”
ie使用已安装的最高版本ie代码 <meta http-equiv = "X-UA-Compatible" content = "IE=7,IE=9" & ...
- 从”茄子快传”看应用程序怎样获取手机已安装程序的apk文件
"茄子快传"是联想开发的一款近距离文件共享软件.它通过wifi-direct(速度飞快,不须要联网)或者普通的网络(速度慢)在不同手机间传递文件. 不知为何.它就火了起来,火的也飞 ...
- CorelDRAW 2017提示已安装另一版本导致安装失败的解决办法
Coreldraw提示"由于您已安装了另一版本,因此无法安装本产品.要安装本产品,您必须首先卸载现有版本"的情况在Coreldraw X8及Coreldraw 2017上都存在,下 ...
随机推荐
- 百度自定义底图(瓦片图)升级 HTTPS
本文地址:https://www.cnblogs.com/veinyin/p/14338414.html 记录一下开发中遇到的问题与解决方案 使用 Leaflet 开发,设计为了美观采用百度自定义底图 ...
- vscode配置c++环境(超简单)
vscode配置c++环境(超简单) 超简单!!! 配置c++最麻烦的就是mingw的环境,有很多不同的版本,很杂乱,这里我们用最简单的办法展示. 下载一个devc++. 如果你问我,为什么下了dev ...
- Manage your references to .Net assemblies Dynamics 365 for Operations VS projects
(Dynamics 365 for Operations was previously known as the New Dynamics AX) Dynamics 365 for Operation ...
- 关于Unity 图片队列存储以及出列导致内存溢出的解决方案
图片虽然出列但是并没有销毁,所以..destroy !
- IDEA比较常用的快捷键
IDEA比较常用的快捷键 快捷键 说明 Ctrl+] 诸如{}围起来的代码块,使用该快捷键可以快速跳转至代码块的结尾处 Ctrl+[ 同上,快速跳至代码块的开始出 Ctrl+Shift+Enter 将 ...
- 视频播放-videojs
视频播放-video-js组件 安装 yarn add video.js --save npm install video.js --save 代码 import React, { useEffect ...
- 去除Bigdecimal末尾的.00
String total = new BigDecimal("100.00").stripTrailingZeros().toPlainString();
- Mysql不同字符串格式的连表查询
MySql报错:Error Code: 1267. Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci, ...
- ESP32 优化 IRAM 内存方法整理 ---ESP32
有以下三种方便的方法来优化 IRAM 内存: 启用 menuconfig -> Compiler option -> Optimization Level -> Optimize f ...
- Spring--依赖注入:setter注入和构造器注入
依赖注入:描述了在容器中建立Bean于Bean之间依赖关系的过程 setter注入 在本来已经在service里面引用了bean的相关方法的基础上,再引用之前已经写过的userDao的对象,即在ser ...