使用C#检验.NET FrameWork版本
代码如下:
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版本相关推荐
- DotNet Framework 版本历史
.NET Framework(.NET框架) 是由微软开发,一个致力于敏捷软件开发(Agile software development).快速应用开发(Rapid application devel ...
- 杂七杂八(1)——如何查看本机的.NET Framework版本
今天上午Edward同学问我一个问题:如何知道自己本机安装的.NET Framework版本呢? 以前这个问题我也遇到过,那就是在写自动部署程序的时候,如果客户的机器已经安装了.NET Framewo ...
- c#与mysql数据库连接以及.net framework版本修改问题
之前用MFC开发结果界面太难看被pass了,要求用C#重新来开发>_<,不过终于摆脱VC6.0的蛋疼操作了Y. 先来连接数据库 (1)用c#连接MYSQL数据库需要用到mysql-conn ...
- 64位服务器IIS不能识别32位framework版本。IIS没有Asp.net切换界面的解决办法。
给单独网站(XXXXXXXX 一串数字,可以通过iis的log地址看到)指定framework版本. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727> ...
- 查看计算机.net环境版本,windows7系统查看NET Framework版本的两种方法
现在,很多用户都会在电脑中安装NET Framework,因为一些程序需要NET Framework才能运行.那么,如果想要查看我们计算机中的 NET Framework版本,该如何操作呢?接下来,就 ...
- Springboot版本+ Spring Framework版本 + jdk版本 + Maven版本
Springboot版本+ Spring Framework版本 + jdk版本 + Maven版本的对应关系 Spring boot 版本 Spring Framework jdk 版本 maven ...
- 查看.Net Framework版本的方法
查看.Net Framework版本的方法 第一步: 打开"我的电脑",在地址栏输入 %systemroot%\Microsoft.NET\Framework 如图: 第二步:从列 ...
- Inno Setup 检测已安装的.NET Framework 版本
翻译自:http://kynosarges.org/DotNetVersion.html 由 Jordan Russell 写的 Inno Setup 是一个伟大的安装脚本程序,但缺乏一个内置的函数来 ...
- 各个版本 Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本
各个版本 Windows 10 的名称.完整版本号.开发代号和系统自带的 .NET Framework 版本 更新于 2020-04-10 09:02 Windows 10 名称 Windows 版本 ...
最新文章
- property Alternative forms propretie
- Mac用户SVN图形界面推荐
- pku 1691 Painting A Board DFS 抽象建图 + 拓扑排序
- 【腾讯通服务器的消息集成解决方案】之与勤哲Excel服务器的集成
- Activity的启动过程(源码API27)
- hashmap应用场景_Java初学者进阶系列:HashMap的容量与性能
- linux5.8不能上网,Ubuntu 8.04不能上网的问题的解决方法
- Zabbix 2.2(一):Web监控的监控项
- 排序算法与常见数据结构
- OBJ文件格式分析工具: objdump, nm,ar
- 计算机科学素养大赛,第六届全国大学生计算机应用能力与信息素养大赛圆满结束...
- 用例图中三种关系详解(转)
- 『号外号外』WoS数据库更新后导入VOSviewer出错的原因
- c语言写俄罗斯方块(源码)
- Python与SEO,搜狗站长平台网站提交POST源码
- Java基础-GUI入门-Swing详解
- linux中yum -y install mysql为什么默认是mariadb?以及mysql yum源的配置
- python生成树状图_python 字典生成树状图
- [翻译] 在 Overleaf 中上传项目
- Windows dss代理摄像头rtsp流 rtsp摄像头+ffmpeg+vlc