当前位置:网站首页>C# 获取系统已安装的.NET版本
C# 获取系统已安装的.NET版本
2022-08-09 11:31:00 【yanjinhua】
本文经原作者授权以原创方式二次分享,欢迎转载、分享。
原文作者:唐宋元明清
原文地址: https://www.cnblogs.com/kybs0/p/16478587.html
C# 获取系统已安装的.NET版本
获取系统已安装的.NET版本,来确定当前应用可运行的环境。

获取系统已安装的.NET版本
微软已经有相应的完整文档,请参考:确定已安装的 .NET Framework 版本 - .NET Framework | Microsoft Docs
Release根据文档描述是版本密钥,应该是类似版本构建号,能够判断是否已安装.NET。
Version是.NetFramework的版本
我整理了下获取Version的方法,方便大家获取:
private Version GetFrameworkVersion()
{
string registerKey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
var defaultVersion = new Version(0, 0);
try
{
using (var sub = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(registerKey))
{
if (!(sub?.GetValue("Release") is int key))
return defaultVersion;
//判断
if (key >= 528040)
return new Version(4, 8);
if (key >= 461808)
return new Version(4, 7, 2);
if (key >= 461308)
return new Version(4, 7, 1);
if (key >= 460798)
return new Version(4, 7);
if (key >= 394802)
return new Version(4, 6, 2);
if (key >= 394254)
return new Version(4, 6, 1);
if (key >= 393295)
return new Version(4, 6);
if (key >= 379893)
return new Version(4, 5, 2);
if (key >= 378675)
return new Version(4, 5, 1);
if (key >= 378389)
return new Version(4, 5);
}
}
catch (Exception)
{
// ignored
}
//小于4.5,一般不存在这个环境
return new Version(0, 0);
}
注:如果需要快速获取电脑的. NET版本,可以通过 PowerShell查看
(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client' -Name Version).Version

边栏推荐
- 二进制加法
- TIC2000调用API函数Flash擦除片上FLASH失败
- 【DB运营管理/开发解决方案】上海道宁为您提供提高工作便利性的集成开发工具——Orange
- 湖南进芯电子替代TIC2000的可能性
- PTA 计算天数
- 信号量SIGCHLD的使用,如何让父进程得知子进程执行结束,如何让父进程区分多个子进程的结束
- MySQL执行sql语句的机制
- This application has no explicit mapping for /error, so you are seeing this as a fallback
- gdb 10.2的安装
- Semaphore SIGCHLD use, how to make the parent that the child performs over, how to make the distinction between multiple child processes. The end
猜你喜欢
win10 outlook邮件设置
[现代控制理论]4_PhasePortrait爱情故事动态系统分析
【Adobe Premiere Pro 2020】pr2020安装和基本操作【PR安装、新建项目流程、导入及管理素材项目文件、添加标记、创建出入点剪辑视频、快速剪接及自动音乐卡点的方法
[C language] creation and use of dynamic arrays
x86 exception handling and interrupt mechanism (2) interrupt vector table
fidder为什么不会抓包的问题
matlab simulink的scope 示波器光标如何移动记录
Number theory knowledge
MySQL传统方案和通过SSH连接哪个好?
wpf实现简易画板功能(带截取画板,签名截图等等)
随机推荐
ThreadLocal类
PTA 指定位置输出字符串(c)
WPF 实现带蒙版的 MessageBox 消息提示框
PAT1011
TIC2000调用API函数Flash擦除片上FLASH失败
ClickHouse之MaterializeMySQL引擎(十)
mysql参数学习----max_allowed_packet
PTA 实验7-5 输出大写英文字母(10 分)
LeetCode 1413.逐步求和得到正数的最小值
The use of signal function (signal) in C language
双向链表的各种操作
[Essence] Analysis of the special case of C language structure: structure pointer / basic data type pointer, pointing to other structures
[C language] creation and use of dynamic arrays
PTA 换硬币
通关SQLilab靶场——Less-1思路步骤
UNIX哲学
redis的线程模型
ClickHouse物化视图(八)
ZOJ1298(单源最短路径)
Redis的常用数据结构和底层实现方式