从注册表可以拿到当前用户安装的 .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. python 缺失值处理

  2. Java SDUT-2562_相似三角形

    相似三角形 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 给出两个三角形的三条边,判断是否相似. Input 多组数据 ...

  3. Java练习 SDUT-2401最大矩形面积

    最大矩形面积 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在一个矩形区域内有很多点,每个点的坐标都是整数.求一个矩形 ...

  4. 洛谷3067 BZOJ 2679题解(折半搜索)

    传送门 BZOJ传送门(权限题) 看到n小于20,就可以想到搜索 所有的数要么在集合a中,要么在集合b中,要么都不在 可是3^n复杂度会炸,我们考虑优化 可以利用折半搜索,将前面一半的所有可能情况与后 ...

  5. shell学习(19)- find查找命令

    Linux find命令用来在指定目录下查找文件.任何位于参数之前的字符串都将被视为欲查找的目录名.如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件.并且将查找到的子目录 ...

  6. 2016 Asia Jakarta Regional Contest L - Tale of a Happy Man UVALive - 7722

    UVALive - 7722 一定要自己做出来!

  7. C++五:重载 多态

    C++五:重载与多态 一:概述   多态是指同样的消息被不同类型的对象接收导致不同的行为,即接口的多种不同的实现方式.多态可分为静态多态与动态多态.多态类型可分为四类:重载多态,强制多态,包含多态,参 ...

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

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

  9. 字节缓冲流 ( BufferedInputStream / BufferedOutputStream)

    package com.sxt.reader; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; imp ...

  10. java 简单实现FtpClient

    1. 引入喜闻乐见的maven地址 <dependency> <groupId>commons-net</groupId> <artifactId>co ...