获取系统已安装的.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版本的更多相关文章

  1. 查看已安装的CentOS版本信息:

    如何查看已安装的CentOS版本信息: 1)[root@localhost ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@ ...

  2. 利用RxJava获取手机已安装的App的图片、应用名称和版本号

    先上效果图: 获取手机已安装的App列表利用Android系统API就可以办到,这里为什么要引入RxJava?现在我们假设一下有下面几个需求: 1.我们不需要所有的App,只需要用户安装的第三方App ...

  3. Android中获取系统上安装的APP信息

    Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00003259 Android中获取系统上安装的APP信 ...

  4. 如何查看已安装的CentOS版本信息

    如何查看已安装的CentOS版本信息: 1)[root@localhost ~]# cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@ ...

  5. iOS11 获取手机已安装应用列表

    在iOS 11 以前我们可以使用LSApplicationWorkspace来获取手机上已安装的应用列表 iOS 11 上获取所有已安装应用接口被禁,但可以根据BundleId检查App是否存在 - ...

  6. 获取手机已安装应用的name,bundleIdentitifer

    获取手机已安装应用的name,bundleIdentitifer Class c =NSClassFromString(@"LSApplicationWorkspace"); id ...

  7. ie使用已安装的最高版本ie代码,及ie下不要在结尾处写多余的逗号“,”

    ie使用已安装的最高版本ie代码 <meta http-equiv = "X-UA-Compatible" content = "IE=7,IE=9" & ...

  8. 从”茄子快传”看应用程序怎样获取手机已安装程序的apk文件

    "茄子快传"是联想开发的一款近距离文件共享软件.它通过wifi-direct(速度飞快,不须要联网)或者普通的网络(速度慢)在不同手机间传递文件. 不知为何.它就火了起来,火的也飞 ...

  9. CorelDRAW 2017提示已安装另一版本导致安装失败的解决办法

    Coreldraw提示"由于您已安装了另一版本,因此无法安装本产品.要安装本产品,您必须首先卸载现有版本"的情况在Coreldraw X8及Coreldraw 2017上都存在,下 ...

随机推荐

  1. 百度自定义底图(瓦片图)升级 HTTPS

    本文地址:https://www.cnblogs.com/veinyin/p/14338414.html 记录一下开发中遇到的问题与解决方案 使用 Leaflet 开发,设计为了美观采用百度自定义底图 ...

  2. vscode配置c++环境(超简单)

    vscode配置c++环境(超简单) 超简单!!! 配置c++最麻烦的就是mingw的环境,有很多不同的版本,很杂乱,这里我们用最简单的办法展示. 下载一个devc++. 如果你问我,为什么下了dev ...

  3. 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 ...

  4. 关于Unity 图片队列存储以及出列导致内存溢出的解决方案

    图片虽然出列但是并没有销毁,所以..destroy !  

  5. IDEA比较常用的快捷键

    IDEA比较常用的快捷键 快捷键 说明 Ctrl+] 诸如{}围起来的代码块,使用该快捷键可以快速跳转至代码块的结尾处 Ctrl+[ 同上,快速跳至代码块的开始出 Ctrl+Shift+Enter 将 ...

  6. 视频播放-videojs

    视频播放-video-js组件 安装 yarn add video.js --save npm install video.js --save 代码 import React, { useEffect ...

  7. 去除Bigdecimal末尾的.00

    String total = new BigDecimal("100.00").stripTrailingZeros().toPlainString();

  8. Mysql不同字符串格式的连表查询

    MySql报错:Error Code: 1267. Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci, ...

  9. ESP32 优化 IRAM 内存方法整理 ---ESP32

    有以下三种方便的方法来优化 IRAM 内存: 启用 menuconfig -> Compiler option -> Optimization Level -> Optimize f ...

  10. Spring--依赖注入:setter注入和构造器注入

    依赖注入:描述了在容器中建立Bean于Bean之间依赖关系的过程 setter注入 在本来已经在service里面引用了bean的相关方法的基础上,再引用之前已经写过的userDao的对象,即在ser ...