【发布时间】:2018-07-23 14:49:33
【问题描述】:
我正在尝试找出在此特定主机上运行的 .NET 版本。我得到了矛盾的结果:
- ASoft .NET 版本检测器说 4.6.2
- 注册表键为“Release”“394802”,根据how-to-determine-which-versions-are-installed映射到4.6.2
- 但是,
mscorlib.dll和clr.dll的版本为 4.7.2117.0,而C:\Windows\Microsoft.NET\Framework64\v4.0.30319中的其他一些文件的版本为 "4.6.1586"(例如 csc .exe)。 -
Environment.Version返回 4.0.30319.42000
这里是 ASoft Version Detector 的完整日志:
<32Bit>
2.0.50727.8745
->C:\Windows\Microsoft.NET\Framework\v2.0.50727
4.7.2117.0
->C:\Windows\Microsoft.NET\Framework\v4.0.30319
<64Bit>
2.0.50727.8745
->C:\Windows\Microsoft.NET\Framework64\v2.0.50727
4.7.2117.0
->C:\Windows\Microsoft.NET\Framework64\v4.0.30319
< Installed .NET Frameworks >
.NET FW 2.0 SP 2 (CLR:2.0)
.NET FW 3.0 SP 2 (CLR:2.0)
.NET FW 3.5 SP 1 (CLR:2.0)
.NET FW 4.6.2 (CLR:4.0)
< Installed Updates >
Microsoft .NET Framework 4 Client Profile
KB2468871
KB2468871v2
KB2478063
KB2533523
KB2544514
KB2600211
KB2600217
Microsoft .NET Framework 4 Extended
KB2468871
KB2468871v2
KB2478063
KB2533523
KB2544514
KB2600211
KB2600217
KB2468871
KB2468871v2
KB2478063
KB2533523
KB2544514
KB2600211
KB2600217
< Installed Languages 3.0>
English - United States
< Installed Languages 3.5.x>
English - United States
< Installed Languages 4.x>
English - United States
我想知道它是哪个 .NET 版本,它是真正安装的?注册表“Release”键与“mscorlib.dll”版本不匹配怎么办?安装是否损坏?
如果注册表“Release”键不可靠,确定 .NET/CLR 版本最可靠的信息来源是什么?
【问题讨论】:
-
您可以同时安装不同版本的 .net。
-
文件版本很少相关。你为什么还要看他们?最初是什么开始了这场狩猎,即你为什么不相信工具/注册表告诉你的东西。 @HamletHakobyan - CLR 版本中没有不同的版本。您只能安装一个 4.x(从运行时的角度来看。您可以拥有大量的目标包/SDK,但这在这里无关紧要)
-
对。所有 4.X 安装都是就地更新。因此,它们不能并排。了解正确的 .NET 版本对我来说很重要,因为我正在尝试针对所有可用的 .NET 版本测试我的产品。在这个特定的主机上,我不确定我在测试什么。
-
已经有很多 4.6.2 版本,通过 Windows Update 部署。毫无疑问,那些 4.7 DLL 是通过安全更新潜入的。顺便说一句,这并不总是很好。这个月的更新值得注意,它caused trouble。
标签: .net