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上都存在,下 ...
随机推荐
- C/C++ 异常处理机制(例:文件拷贝)
异常是一种程序控制机制,与函数机制互补. 函数是一种以栈结构展开的上下函数衔接的程序控制系统,异常是另一种控制结构,它可以在出现"意外"时中断当前函数,并以某种机制(类型匹配)回馈 ...
- windows系统,自动设置--shutdown命令了解
参考:https://baike.baidu.com/item/shutdown/10469108?fr=aladdin 比如你的电脑要在24:00关机,可以选择"开始运行",输入 ...
- 使用 IntersectionObserver API 遇到的一些问题
root 设指定为 document.body 时不会触发更新 See the Pen document.body and IntersectionObserver by y1j2x34 (@y1j2 ...
- C语言的导数和积分
用C进行导数和积分的运算 进行求导 设一个dx,利用f(x)-f(x-dx)/dx或f(x)-f(x+dx)/dx进行计算. float qd(float x) { float dx=0.01,y; ...
- idea 切换database数据库方言
在适配各种国产数据库时常常遇到存在数据库方言的情况,例如openGauss支持oracle兼容模式.. 在这种情况下,就需要在idea里对方言进行切换,否则无法执行oracle语法的sql. 1.连接 ...
- windows代码获取系统硬件信息的两种方式
欢迎访问我的个人博客:xie-kang.com 原文地址 目前windows有两种方式获取系统硬件信息: 1)通过GetSystemFirmwareTable API获取SMBIOS信息,一段含丰富信 ...
- conda Installing on Linux - 搬运
转自:Installing on Linux - conda 23.1.0 documentation Installing on Linux Download the installer: Min ...
- Conda简单教程 - 搬运
Conda简单教程 转自:https://www.cnblogs.com/nuccch/p/15046969.html 目录 什么是Conda 安装Conda 虚拟环境管理 模块管理 何时使用Cond ...
- PYCHARM开源版-免费版本
下载地址:https://www.jetbrains.com/pycharm/download/#section=windows 亲测可以使用,不需要任何破解工具
- 内网jenkins跨版本升级
概要: 原来使用的jenkins版本为1.6,现在需要升级为最新版2.3.6 由于在内网,不能使用jenkins自带的在线升级工具 升级思路: 由于版本跨度太大,直接copy jenkins目录,启动 ...