获取机器安装.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 ...
随机推荐
- 关于unity3D的学习感想
在老师布置团队项目后组长确定项目是做游戏是,我才接触的Unity3D游戏引擎. 因为一开始我没有接触过这类软件,更没有用过.所以作为一个新手,做好的办 法实在网上找教程.网上说Unity3D是由Uni ...
- C语言实现 二分查找数组中的Key值(递归和非递归)
基本问题:使用二分查找的方式,对数组内的值进行匹配,如果成功,返回其下标,否则返回 -1.请使用递归和非递归两种方法说明. 非递归代码如下: #include <stdio.h> int ...
- ncurses-devel
:Install ncurses(ncurses-devel) and try again. 做一个简单的铺垫,ncurses是字符终端下屏幕控制的基本库.可能很多新开发的程序已经不再使用.假如要编译 ...
- 解决PKIX(PKIX path building failed) 问题 unable to find valid certification path to requested target
最近在写java的一个服务,需要给远程服务器发送post请求,认证方式为Basic Authentication,在请求过程中出现了 PKIX path building failed: sun.se ...
- grep笔记
grep "match_text" file1 file2 file3 ... #grep可以对多个文件进行过滤 --color ...
- 【温故Delphi】GAEA用到Win32 API目录
Delphi是Windows平台下著名的快速应用程序开发工具,它在VCL中封装并使用了大量的Win32 API. GAEA基于VCL开发的工具类产品,在程序中使用了大量的Win32 API,将经常用到 ...
- 完全用CSS实现的表格
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- shell中括号的使用
在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(cmd) 3.()和{} 4.${var:-string},${var:+string ...
- C++中有符号/无符号数比较
原创文章,欢迎阅读,禁止转载. 在我的程序中有如下代码编译被警告了 if(list.size()>msize){...} warning C4018: '<' : signed/unsig ...
- iOS 报错 :Duplicate interface definition for class’*'
这个是重复导入引起的,但是一般的重复导入会在C里的include.而在项目中我们移动项目的位置,比如从某一文件夹移到另一文件夹,路径改变的话会导致项目的中预编译文件PrefixHeader.pch的路 ...