代码如下:

public static bool checkFrameWork(string destVersion){bool ver1 = GetVersionFromRegistry(destVersion);if (ver1)return true;else{return Get45PlusFromRegistry();}}//reference:https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installedpublic static bool Get45PlusFromRegistry(){const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)){if (ndpKey != null && ndpKey.GetValue("Release") != null){return CheckFor45PlusVersion((int)ndpKey.GetValue("Release"));}return false;}}// Checking the version using >= will enable forward compatibility.public static bool CheckFor45PlusVersion(int releaseKey){if (releaseKey >= 378389)return true;// This code should never execute. A non-null release key should mean// that 4.5 or later is installed.return false;}public static bool GetVersionFromRegistry(string destVersion){ArrayList versions = new ArrayList();// Opens the registry key for the .NET Framework entry.using (RegistryKey ndpKey =RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "").OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\")){// As an alternative, if you know the computers you will query are running .NET Framework 4.5 // or later, you can use:// using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, // RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))foreach (string versionKeyName in ndpKey.GetSubKeyNames()){if (versionKeyName.StartsWith("v")){RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);string name = (string)versionKey.GetValue("Version", "");string sp = versionKey.GetValue("SP", "").ToString();string install = versionKey.GetValue("Install", "").ToString();if (install == "") //no install info, must be later.{Console.WriteLine(name);versions.Add(name);}//Console.WriteLine(versionKeyName + "  " + name);else{if (sp != "" && install == "1"){//Console.WriteLine(versionKeyName + "  " + name + "  SP" + sp);Console.WriteLine(name);versions.Add(name);}}if (name != ""){continue;}foreach (string subKeyName in versionKey.GetSubKeyNames()){RegistryKey subKey = versionKey.OpenSubKey(subKeyName);name = (string)subKey.GetValue("Version", "");if (name != "")sp = subKey.GetValue("SP", "").ToString();install = subKey.GetValue("Install", "").ToString();if (install == "") //no install info, must be later.{//Console.WriteLine(versionKeyName + "  " + name);//Console.WriteLine(name);versions.Add(name);}else{if (sp != "" && install == "1"){//Console.WriteLine("  " + subKeyName + "  " + name + "  SP" + sp);//Console.Write(name);versions.Add(name);}else if (install == "1"){//Console.WriteLine("  " + subKeyName + "  " + name);//Console.WriteLine(name);versions.Add(name);}}}}}object[] verArr = versions.ToArray();foreach (object o in verArr){Version ver;string str = o.ToString();if (str == "")ver = new Version("1.0");elsever = new Version(str);if (ver >= new Version(destVersion))return true;}}return false;}
复制代码

其中还有一点小瑕疵,有兴趣的自己看一看修改一下就好了。

在使用的时候,我们只需要调用checkFrameWork函数就可以了。

使用C#检验.NET FrameWork版本相关推荐

  1. DotNet Framework 版本历史

    .NET Framework(.NET框架) 是由微软开发,一个致力于敏捷软件开发(Agile software development).快速应用开发(Rapid application devel ...

  2. 杂七杂八(1)——如何查看本机的.NET Framework版本

    今天上午Edward同学问我一个问题:如何知道自己本机安装的.NET Framework版本呢? 以前这个问题我也遇到过,那就是在写自动部署程序的时候,如果客户的机器已经安装了.NET Framewo ...

  3. c#与mysql数据库连接以及.net framework版本修改问题

    之前用MFC开发结果界面太难看被pass了,要求用C#重新来开发>_<,不过终于摆脱VC6.0的蛋疼操作了Y. 先来连接数据库 (1)用c#连接MYSQL数据库需要用到mysql-conn ...

  4. 64位服务器IIS不能识别32位framework版本。IIS没有Asp.net切换界面的解决办法。

    给单独网站(XXXXXXXX 一串数字,可以通过iis的log地址看到)指定framework版本. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727> ...

  5. 查看计算机.net环境版本,windows7系统查看NET Framework版本的两种方法

    现在,很多用户都会在电脑中安装NET Framework,因为一些程序需要NET Framework才能运行.那么,如果想要查看我们计算机中的 NET Framework版本,该如何操作呢?接下来,就 ...

  6. Springboot版本+ Spring Framework版本 + jdk版本 + Maven版本

    Springboot版本+ Spring Framework版本 + jdk版本 + Maven版本的对应关系 Spring boot 版本 Spring Framework jdk 版本 maven ...

  7. 查看.Net Framework版本的方法

    查看.Net Framework版本的方法 第一步: 打开"我的电脑",在地址栏输入 %systemroot%\Microsoft.NET\Framework 如图: 第二步:从列 ...

  8. Inno Setup 检测已安装的.NET Framework 版本

    翻译自:http://kynosarges.org/DotNetVersion.html 由 Jordan Russell 写的 Inno Setup 是一个伟大的安装脚本程序,但缺乏一个内置的函数来 ...

  9. 各个版本 Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本

    各个版本 Windows 10 的名称.完整版本号.开发代号和系统自带的 .NET Framework 版本 更新于 2020-04-10 09:02 Windows 10 名称 Windows 版本 ...

最新文章

  1. property Alternative forms propretie
  2. Mac用户SVN图形界面推荐
  3. pku 1691 Painting A Board DFS 抽象建图 + 拓扑排序
  4. 【腾讯通服务器的消息集成解决方案】之与勤哲Excel服务器的集成
  5. Activity的启动过程(源码API27)
  6. hashmap应用场景_Java初学者进阶系列:HashMap的容量与性能
  7. linux5.8不能上网,Ubuntu 8.04不能上网的问题的解决方法
  8. Zabbix 2.2(一):Web监控的监控项
  9. 排序算法与常见数据结构
  10. OBJ文件格式分析工具: objdump, nm,ar
  11. 计算机科学素养大赛,第六届全国大学生计算机应用能力与信息素养大赛圆满结束...
  12. 用例图中三种关系详解(转)
  13. 『号外号外』WoS数据库更新后导入VOSviewer出错的原因
  14. c语言写俄罗斯方块(源码)
  15. Python与SEO,搜狗站长平台网站提交POST源码
  16. Java基础-GUI入门-Swing详解
  17. linux中yum -y install mysql为什么默认是mariadb?以及mysql yum源的配置
  18. python生成树状图_python 字典生成树状图
  19. [翻译] 在 Overleaf 中上传项目
  20. Windows dss代理摄像头rtsp流 rtsp摄像头+ffmpeg+vlc

热门文章

  1. 详略。。设计模式1——单例。。。。studying
  2. MySQL如何选择数据类型
  3. 大型分布式网站架构设计与实践 笔记
  4. 自定义Lisp透明命令
  5. AppCan用cookie实现记住密码功能 [APP]
  6. python whl是什么文件
  7. docker中部署redis主从模式
  8. 跨域解决方案(史上最易懂)
  9. EditPlus 格式化HTML JS CSS
  10. SpringBoot 2.0 系列001 -- 入门介绍以及相关概念