当调查应用程序问题时,通常需要先确认目标机器所安装的 .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 发表自博客园,未经作者本人同意禁止任何形式的转载,任何自动或人为的爬虫转载行为均为耍流氓。