这里也提出了类似的问题,但这是针对。net 3.5的。具体来说,我正在寻找以下:

确定安装了哪些.NET Framework版本和服务包的正确方法是什么? 是否有可以使用的注册表项列表? 框架版本之间是否存在依赖关系?


当前回答

我想检测系统上是否安装了。net 4.5.2版本,我发现没有比ASoft . net version Detector更好的解决方案了。

该工具的快照显示了不同的.NET版本:

其他回答

在Windows 7中(它应该也适用于Windows 8,但我还没有测试):

转到命令提示符

进入命令提示符的步骤:

点击开始菜单 在搜索框中输入“cmd”(不带引号) 打开用于cmd . exe

在cmd中输入此命令

wmic /namespace:\\root\cimv2 path win32_product where "name like '%%.NET%%'" get version

这给出了安装的最新版本的NET Framework。

你也可以试试雷蒙德。cc实用程序相同。

对于64位操作系统,路径为:

HKEY_LOCAL_MACHINE\SOFTWARE\wow6432Node\Microsoft\NET Framework Setup\NDP\

列举HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP的子键。每个子键都是一个。net版本。如果它存在于机器上,则它应该具有Install=1值,如果使用MSI安装,则它应该具有显示服务包的SP值和MSI=1值。(.例如,Windows Vista上的NET 2.0没有最后一个,因为它是操作系统的一部分。)

有一个可用的GUI工具,ASoft . net Version Detector,它一直被证明是高度可靠的。它可以通过在命令行上指定XML输出的文件名来创建XML文件。

您可以将其用于自动化。这是一个很小的程序,用非编程语言编写的。NET依赖语言,不需要安装。

微软在下面的知识库文章中给出了这个问题的官方答案:

文章ID: 318785 -最近审查:2008年11月7日-修订:20.1 如何确定安装了哪些版本的.NET Framework以及是否应用了服务包

不幸的是,它似乎不能工作,因为在2.0目录中的mscorlib.dll版本有一个2.0版本,并且在3.0或3.5目录中没有mscorlib.dll版本,即使安装了3.5 SP1…为什么微软的官方回答会如此错误?