这里也提出了类似的问题,但这是针对。net 3.5的。具体来说,我正在寻找以下:
确定安装了哪些.NET Framework版本和服务包的正确方法是什么? 是否有可以使用的注册表项列表? 框架版本之间是否存在依赖关系?
这里也提出了类似的问题,但这是针对。net 3.5的。具体来说,我正在寻找以下:
确定安装了哪些.NET Framework版本和服务包的正确方法是什么? 是否有可以使用的注册表项列表? 框架版本之间是否存在依赖关系?
当前回答
列举HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP的子键。每个子键都是一个。net版本。如果它存在于机器上,则它应该具有Install=1值,如果使用MSI安装,则它应该具有显示服务包的SP值和MSI=1值。(.例如,Windows Vista上的NET 2.0没有最后一个,因为它是操作系统的一部分。)
其他回答
在Windows 7中(它应该也适用于Windows 8,但我还没有测试):
转到命令提示符
进入命令提示符的步骤:
点击开始菜单 在搜索框中输入“cmd”(不带引号) 打开用于cmd . exe
在cmd中输入此命令
wmic /namespace:\\root\cimv2 path win32_product where "name like '%%.NET%%'" get version
这给出了安装的最新版本的NET Framework。
你也可以试试雷蒙德。cc实用程序相同。
请参阅如何:确定安装的. net框架版本(MSDN)。
MSDN提出了一个函数示例,它似乎完成了版本1-4的工作。根据文章,该方法输出为:
v2.0.50727 2.0.50727.4016 SP2
v3.0 3.0.30729.4037 SP2
v3.5 3.5.30729.01 SP1
v4
Client 4.0.30319
Full 4.0.30319
注意,对于“4.5及更高版本”,还有另一个函数。
列举HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP的子键。每个子键都是一个。net版本。如果它存在于机器上,则它应该具有Install=1值,如果使用MSI安装,则它应该具有显示服务包的SP值和MSI=1值。(.例如,Windows Vista上的NET 2.0没有最后一个,因为它是操作系统的一部分。)
更新。net 4.5.1
现在. net 4.5.1可用了,需要检查注册表中名为Release的键的实际值,而不仅仅是它是否存在。值为378758表示安装了. net Framework 4.5.1。但是,在Windows 8.1上,这个值是378675。
微软在下面的知识库文章中给出了这个问题的官方答案:
文章ID: 318785 -最近审查:2008年11月7日-修订:20.1 如何确定安装了哪些版本的.NET Framework以及是否应用了服务包
不幸的是,它似乎不能工作,因为在2.0目录中的mscorlib.dll版本有一个2.0版本,并且在3.0或3.5目录中没有mscorlib.dll版本,即使安装了3.5 SP1…为什么微软的官方回答会如此错误?