用于检测.NET版本的注册表

时间:2014-05-16 20:08:38

标签: .net registry .net-framework-version

检测.NET版本的最佳注册表路径是什么?我想检测版本2.0和4.0。

许多人提出了很多道路:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\policy\v4.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.0

哪一个最好?

我安装了以下框架:

.NET 2.0 SP 2
.NET 3.0 SP 2
.NET 3.5 SP 1
.NET 4.5
.NET 4.5.1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP中没有v4.5v4.5.1键。 HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\policy没有3.5

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework有两个用于v4.5的键:v4.5v4.5.50709键。那么,用哪一个来检测4.5?

我很困惑。

2 个答案:

答案 0 :(得分:2)

来自MSDN How to: Determine Which .NET Framework Versions Are Installed

  • 版本1 - 4:使用HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
  • 版本4.5+:使用HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full,并检查Release DWORD以查找特定版本

答案 1 :(得分:0)

对于赞美的答案的一个重要补充 MSDN How to: Determine Which .NET Framework Versions Are Installed

请注意,上面的MSDN链接在描述和代码示例中混合了两个路径!

虽然"部分通过在代码中查询注册表(.NET Framework 4.5及更高版本)" 来查找.NET Framework版本,但您应该使用

HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v4.0\Full

同一链接中的代码示例使用以下路径

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

(请注意区别:" v4.0" vs." v4")

我注意到.NET 4安装可能会使用任一文件夹,因此检查两者都是有意义的!似乎不同的安装程序和/或版本使用不同的路径(在线安装程序,脱机安装程序,预安装Windows,.NET 4.0客户端,.NET 4.0 Full,...)

如果要可靠地检测.NET 4,则必须检查两个路径上的Install条目。