从注册表可以拿到当前用户安装的 .NET Framework 版本,本文告诉大家如何解析这些信息



在注册表的当前设备的 SOFTWARE\Microsoft\NET Framework Setup\NDP\ 可以拿到在设备安装的 .NET Framework 版本

大概从注册表拿到的数据就是这样

v2.0.50727=.NET Framework 2.0 SP2; v3.0=.NET Framework 3.0 SP2; v3.5=.NET Framework 3.5 SP1; v4 Client=.NET Framework 4.5 Client Profile; v4 Full=.NET Framework 4.5;

本文主要告诉大家如何从上面的字符串解析出用户安装了哪些 .NET Framework 版本

各个版本的 .NET Framework 依赖的系统请看.NET Framework Versions and Dependencies

    public class UserNetFramework
{
/// <summary>
/// .NET Framework 2.0 SP2
/// </summary>
public bool InstalledNETFramework20SP2 => _list.Contains(NETFramework20SP2); private const string NETFramework20SP2 = ".NET Framework 2.0 SP2"; /// <summary>
/// .NET Framework 3.0 SP2
/// </summary>
public bool InstalledNETFramework30SP2 => _list.Contains(NETFramework30SP2); private const string NETFramework30SP2 = ".NET Framework 3.0 SP2"; /// <summary>
/// .NET Framework 3.5 SP1
/// </summary>
public bool InstalledNETFramework35SP1 => _list.Contains(NETFramework35SP1); private const string NETFramework35SP1 = ".NET Framework 3.5 SP1"; /// <summary>
/// .NET Framework 4 Client Profile
/// </summary>
public bool InstalledNETFramework4CP => _list.Contains(NETFramework4CP); private const string NETFramework4CP = ".NET Framework 4 Client Profile"; /// <summary>
/// .NET Framework 4 Full
/// </summary>
public bool InstalledNETFramework4F => _list.Contains(NETFramework4F); private const string NETFramework4F = ".NET Framework 4 Full"; /// <summary>
/// .NET Framework 4.5 Client Profile
/// </summary>
public bool InstalledNETFramework45CP => _list.Contains(NETFramework45CP); private const string NETFramework45CP = ".NET Framework 4.5 Client Profile"; /// <summary>
/// .NET Framework 4.5
/// </summary>
public bool InstalledNETFramework45 => _list.Contains(NETFramework45); private const string NETFramework45 = ".NET Framework 4.5"; /// <summary>
/// .NET Framework 4.5.1
/// </summary>
public bool InstalledNETFramework451 => _list.Contains(NETFramework451); private const string NETFramework451 = ".NET Framework 4.5.1"; /// <summary>
/// .NET Framework 4.5.2
/// </summary>
public bool InstalledNETFramework452 => _list.Contains(NETFramework452); private const string NETFramework452 = ".NET Framework 4.5.2"; /// <summary>
/// .NET Framework 4.6
/// </summary>
public bool InstalledNETFramework46 => _list.Contains(NETFramework46); private const string NETFramework46 = ".NET Framework 4.6"; /// <summary>
/// .NET Framework 4.6.1
/// </summary>
public bool InstalledNETFramework461 => _list.Contains(NETFramework461); private const string NETFramework461 = ".NET Framework 4.6.1"; /// <summary>
/// .NET Framework 4.7 Client Profile
/// </summary>
public bool InstalledNETFramework47CP => _list.Contains(NETFramework47CP); private const string NETFramework47CP = ".NET Framework 4.7 Client Profile"; /// <summary>
/// .NET Framework 4.7
/// </summary>
public bool InstalledNETFramework47 => _list.Contains(NETFramework47); private const string NETFramework47 = ".NET Framework 4.7"; private readonly HashSet<string> _list = new HashSet<string>(); public static UserNetFramework Parser(string str)
{
var userNetFramework = new UserNetFramework(); foreach (var temp in new[]
{
NETFramework47CP,
NETFramework47,
NETFramework461,
NETFramework46,
NETFramework452,
NETFramework451,
NETFramework45CP,
NETFramework45,
NETFramework4CP,
NETFramework4F,
NETFramework35SP1,
NETFramework30SP2,
NETFramework20SP2,
})
{
if (str.Contains(temp))
{
str = str.Replace(temp, ""); userNetFramework._list.Add(temp);
}
} return userNetFramework;
}
}

.NET Framework Versions and Dependencies

.NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 - walterlv

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

dotnet 获取用户设备安装了哪些 .NET Framework 框架的更多相关文章

  1. django的rest framework框架——安装及基本使用

    一.django的FBV 和 CBV 1.FBV(基于函数的视图): urlpatterns = [ url(r'^users/', views.users), ] def users(request ...

  2. asp dotnet core 从 Frp 获取用户真实 IP 地址

    我在本地开一个服务,然后通过 Frp 让小伙伴可以在外网访问我的 API 连接,但是直接通过 RemoteIp 拿到的是本地的地址.本文告诉小伙伴如何通过 Frp 可以拿到用户的真实 IP 地址 我写 ...

  3. 用c#开发微信(2)扫描二维码,用户授权后获取用户基本信息 (源码下载)

    本文将介绍基于Senparc.Weixin微信开发框架来实现网页授权来获取用户基本信息.先生成包含授权及回调url信息的二维码:用户用微信扫描之后,被要求授权以获取Ta的用户基本信息:用户授权后,通过 ...

  4. 【转】【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字 ...

  5. iOS获取用户设备崩溃日志并分析

    项目最近发布,部分用户在内侧使用,正好遇到一些问题,由于用户在其他城市,所以对于用户设备产生的崩溃日志,不好直接拿设备连接电脑. 对于这种情况,我们可以这样: 1.引导用户开启iOS设备设置-> ...

  6. 【Android应用开发详解】实现第三方授权登录、分享以及获取用户资料

      由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo.实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相 ...

  7. 使用ShareSDK实现第三方授权登录、分享以及获取用户资料效果,项目中包含:源码+效果图+项目结构图

    [Android应用开发详解]第01期:第三方授权认证(一)实现第三方授权登录.分享以及获取用户资料   由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折, ...

  8. .Net之微信小程序获取用户UnionID

    前言: 在实际项目开发中我们经常会遇到账号统一的问题,如何在不同端或者是不同的登录方式下保证同一个会员或者用户账号唯一(便于用户信息的管理).这段时间就有一个这样的需求,之前有个客户做了一个微信小程序 ...

  9. 【微信小程序】获取用户地理位置权限,二次请求授权,逆解析获取地址

    摘要:微信小程序内获取用户地理位置信息授权,被拒绝后二次获取,获取权限后逆解析得到用户所在省市区等.. 场景:商城类小程序,在首页时需展示附近门店,即用户刚进入小程序时就需要获取到用户位置信息 ste ...

随机推荐

  1. Leetcode728.Self Dividing Numbers自除数

    自除数 是指可以被它包含的每一位数除尽的数. 例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0. 还有,自除数不允许包含 0 . 给定上边 ...

  2. 解决VS+Qt不生成moc文件问题

    使用VS的Qt插件进行Qt开发时,有时候会遇到不能生成moc文件的问题. 1.在工程中可以看到这个Generated files目录下是有一个看似moc文件的文件,双击打开的话: 如果能正常打开,文件 ...

  3. 「WC2018」即时战略

    「WC2018」即时战略 考虑对于一条链:直接随便找点,然后不断问即可. 对于一个二叉树,树高logn,直接随便找点,然后不断问即可. 正解: 先随便找到一个点,问出到1的路径 然后找别的点,考虑问出 ...

  4. assigned before calling save & JPA id生成策略

    撸了今年阿里.网易和美团的面试,我有一个重要发现.......>>> Ⅰ 关于JPA 主键,自定义生成遇到的问题,愚蠢的笔记 Ⅱ 第一次 报错: ids for this class ...

  5. oracle loader

    控制文件的格式    load data    infile '数据文件名'    into table 表名    (first_name position(01:14) char,     sur ...

  6. SDUT-2138_判断可达性

    数据结构实验之图论三:判断可达性 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在古老的魔兽传说中,有两个军团,一个叫 ...

  7. sql —— top

    用于规定要返回的记录的数目 原表: 我们如果只想看前三个学生信息的话:

  8. HLSL效果框架-多光源效果

    原文:HLSL效果框架-多光源效果 昨日不可追, 今日尤可为.勤奋,炽诚,不忘初心 手机淘宝二维码 扫描       或者打开连接:程序设计开发 ,掌声鼓励,欢迎光临.     高级着色器语言(HLS ...

  9. Myeclipse 设置默认注释

    windows-->preference-->Java-->Code Style-->Code Templates code-->New Java files ${fil ...

  10. POJ-2502_Subway

    Subway Time Limit: 1000MS Memory Limit: 65536K Description You have just moved from a quiet Waterloo ...