获取机器安装.NET版本的几种方式
当调查应用程序问题时,通常需要先确认目标机器所安装的 .NET Framework 的版本。可以通过如下方式来确认版本号:
通过控制面板安装程序查询

通过查询注册表获取版本信息
在注册表 regedit 中查找键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
得到如下结果:

对应结果如下:
| Value of the Release |
Version |
|
378389 |
.NET Framework 4.5 |
| 378675 |
.NET Framework 4.5.1 installed with Windows 8.1 |
|
378758 |
.NET Framework 4.5.1 installed on Windows 8, Windows 7 SP1 |
|
379893 |
.NET Framework 4.5.2 |
|
On Windows 10 systems: 393295 On all other OS versions: 393297 |
.NET Framework 4.6 |
| On Windows 10 November Update: 394254
On all other OS versions: 394271 |
.NET Framework 4.6.1 |
通过查看安装目录获取版本信息
通常 .NET Framework 会被安装在:
%WINDIR%\Microsoft.Net\Framework
而对应的结果通常是:
C:\Windows\Microsoft.NET\Framework
使用命令:
dir %WINDIR%\Microsoft.Net\Framework\v* /B
得到目录结果:

但这仅列出了目录,无法判断是否安装了 .NET 4.5 或 .NET 4.5.1 等,还需要直接查看 DLL 版本详细信息。

比如,上图中查看了 mscorlib.dll 的版本号是 4.0.30319.34209,这代表什么呢?
- 4.0.30319.1 = .NET 4.0 RTM
- 4.0.30319.269 = most common .NET 4.0 version
- 4.0.30319.544 = another .NET 4.0 version that a small portion
- 4.0.30319.17626 = .NET 4.5 RC
- 4.0.30319.17929 = .NET 4.5 RTM
- 4.0.30319.18010 = current version on my Windows 8 machine
- 4.0.30319.18052 = .NET 4.5 on Windows 7 SP1 64-bit
- 4.0.30319.18408 = .NET 4.5.1 on Windows 7 SP1 64-bit
- 4.0.30319.34209 = .NET 4.5.2 on Windows 7 PS1 64-bit
- 4.0.30319.34014 = .NET 4.5.1 on Windows 8.1 64-bit
- 4.0.30319.34209 = .NET 4.5.2 on Windows 8.1 64-bit
通过使用 WMI 命令获取版本信息
可以通过执行 wmic 命令来获取版本号,命令如下:
wmic product where "Name like 'Microsoft .Net%'" get Name, Version
执行结果:

还可以通过 wmic 命令查询目标机器上安装的所有与 .NET 相关的微软应用,命令如下:
wmic /namespace:\\root\cimv2 path win32_product where "Name like '%%.NET%%'" get Name, Version
执行结果:

参考资料
- .NET SDKs and Downloads
- How to: Determine Which .NET Framework Versions Are Installed
- How to: Determine Which .NET Framework Updates Are Installed
本文《获取机器安装.NET版本的几种方式》由 Dennis Gao 发表自博客园,未经作者本人同意禁止任何形式的转载,任何自动或人为的爬虫转载行为均为耍流氓。
获取机器安装.NET版本的几种方式的更多相关文章
- Struts2中获取HttpServletRequest,HttpSession等的几种方式
转自:http://www.kaifajie.cn/struts/8944.html package com.log; import java.io.IOException; import java. ...
- Action 中获取表单数据的三种方式
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53138905 冷血之心的博客) Action 中获取表单提交数据 ...
- Linux查看操作系统版本的几种方式
Linux查看操作系统版本的几种方式: 1.uname -a 2.lsb_release -a 3.cat /etc/issue 4.cat /proc/version 5.cat /etc/redh ...
- ASP.NET Web API中实现版本的几种方式
在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了.如何实现API的版本呢? 1.通过路由设置版本 最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的contr ...
- js中获取页面元素节点的几种方式
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- SpringJUnit4加载类目录下(src)和WEF-INF目录下的配置文件二--获取注入的bean的二种方式
前言: spring容器以xml的形式注入bean,然后可以在类中获取,获取的形式主要有二种:第一种最简单--采用@Resource 或@Autowired关键字在加载spring文件时将bean注入 ...
- Spring Boot获取前端页面参数的几种方式总结
Spring Boot的一个好处就是通过注解可以轻松获取前端页面的参数,之后可以将参数经过一系列处理传送到后台数据库. 获得的方式有很多种,这里稍微总结一下,大致分为以下几种: 1.指定前端url请求 ...
- Day20-单表中获取表单数据的3种方式
1. 搭建环境请参考:http://www.cnblogs.com/momo8238/p/7508677.html 2. 创建表结构 models.py from django.db import m ...
- 获取Spring的ApplicationContext的几种方式
Application Context定义 简单来说就是Spring中的高级容器,可以获取容器中的各种bean组件,注册监听事件,加载资源文件等功能. 具体定义可以参考官网:https://sprin ...
随机推荐
- AngularJs自定义指令详解(5) - link
在指令中操作DOM,我们需要link参数,这参数要求声明一个函数,称之为链接函数. 写法: link: function(scope, element, attrs) { // 在这里操作DOM} 如 ...
- DLL强名称引用问题
为没有源码的DLL文件添加强名称 如果项目中引用了其他没有源码的dll文件,并且此dll文件是没有强名称的程序集,则编译时会出现类似 "Assembly generation failed ...
- Java使用Scanner接收中文并输出时出现乱码
Java中使用Scanner接收输入的中文并输出时会出现乱码现象,怎么解决此问题呢? 1.方法一 在声明Scanner时添加对应的编码格式就可以了,如下所示: Scanner sc = new Sca ...
- [ MySql学习心得 ] --Two
五.MySql 中常用子句 1.where子句 我们都知道在查询数据时,未必会查整个表中的数据,当有条件查询时,就会用到where子句.其结构: select * from [表名] where ...
- jQuery基础_3
DOM:文档处理内部插入:父子级关系$("a").append($("b"))把b插入到a中[a里面的后面]$("b").appendTo( ...
- HTML流动布局各种宽度自适应
<!DOCTYPE html> <html lang="en"> <style> html,body{ padding: 0;margin: 0 ...
- Linux最常用命令之cd和ls
为什么说是最常用的命令呢,因为从普及程度看,即使不怎么接触过Linux系统的人,大多数都会知道这两个命令:而从使用频率看,这两个命令也是当之无愧的首位.现在我们就来看看这两个命令. cd 篇:cd 即 ...
- JavaScript-BOM-history:保存当前窗口打开后成功访问过的url历史记录栈
history:保存当前窗口打开后成功访问过的url历史记录栈history.go(n):前进n步前进一步:history.go(1);后退一步:history.go(-1);刷新:history.g ...
- HibernateUtil
package com.ssh.util; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.Standa ...
- 近期C#项目中总结
1. 读写文件操作 using (file = new System.IO.StreamReader(inputfile)) { using (outfile = new System.IO.Stre ...