.net - 使用哪个注册表来检测 .NET 版本

标签 .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 呢?

我很困惑。

最佳答案

来自 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

关于.net - 使用哪个注册表来检测 .NET 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23703756/

相关文章:

c# - C# 中的 IE 插件能够与 mysql 通信

java - 如何让 IzPack 将我的程序添加到 Windows 注册表?

c# - 使用 .net Framework 4.7.2 而不是 .net core 实现 strip 订阅

c# - 数组在 CLR 中有直接支持

.net - 托管线程多久切换一次操作系统线程?

c# - 如何为具有可选时间部分的通用日期格式定义 DateTime 解析格式?

powershell - 更改注册表文件夹权限会引发访问被拒绝

windows - 注册COM组件需要什么?

visual-studio - 为什么在 VS 2019 中出现智能错误

c# - .NET Framework 和 .NET Standard 冲突(兼容性问题)