gpt4 book ai didi

.net - 如何可靠地检测实际安装的.NET 4.5版本?

转载 作者:行者123 更新时间:2023-12-03 06:04:20 24 4
gpt4 key购买 nike

我的实际问题是我遇到了两个版本的 .NET 4.5 完整设置:

  • (可能)较旧的版本,在下载 SQL Server Data Tools 时也可以使用
    • 大小:50,349,920
    • md5:a5e81d1b3905ada0a6e35fd6c6a2e1f4
  • 今天早上从这里下载了(可能)较新的一个:http://www.microsoft.com/visualstudio/eng/downloads
    • 大小:50,352,408
    • md5:d02dc8b69a702a47c083278938c4d2f1

两种设置的版本均为4.5.50709.17929。在里面,主要的区别是 netfx_Full.mzz 文件,但是在使用 7-zip 提取内容后,我最终得到了很多具有相同版本的文件,即使文件内容不同(我已经检查了大约 426 个文件中的大约 20 个随机文件,所以我无法真正分辨出哪个文件更新。

有没有办法可靠地检测已安装的 .NET 4.5 运行时的实际版本,以便我可以仅在确实需要时运行安装程序?

更新

我已经检查了所有具有不同内容的 426 个文件,并且所有这些文件在两种设置中都具有相同的 ProductVersion 和 FileVersion。因此,注册表或文件校验和是下一步。

更新2

两种设置的注册表中列出的版本相同:4.5.50709

更新3

.NET 4.5.2现已推出:

This version of the .NET Framework runs side-by-side with the .NET Framework 3.5 SP1 and earlier versions, but performs an in-place update for the .NET Framework 4, .NET Framework 4.5 and .NET Framework 4.5.1.

最佳答案

MS 最近修补了 .NET 4.5,以在某些情况下恢复与 .NET 4.0 的向后兼容性(请参阅 http://blogs.msdn.com/b/dotnet/archive/2012/10/17/net-framework-4-5-off-to-a-great-start.aspx)。

MS 可能会通过这些更改更新设置(以便升级到 .NET 4.5 的用户不会遇到兼容问题),但我不知道为什么他们不更改设置上的版本号。

另请注意,.NET 版本号与 System.Environment.Version 报告的运行时版本号之间存在差异。对于 .NET 4.5,后者仍然是 4.0.30319.*,只是修订号发生了变化(随着 .NET 4.5 更新以及每次安全更新)。

以下是在野外观察到的运行时版本的一些示例:

基础4.0

  • 4.0.30319.1 = .NET 4.0 RTM
  • 4.0.30319.269 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有 MS12-035 GDR 安全更新)
  • 4.0.30319.276 = Windows XP SP3 上的 .NET 4.0(4.0.3 运行时更新)
  • 4.0.30319.296 = Windows XP SP3、7 上的 .NET 4.0(带有 MS12-074 GDR 安全更新)
  • 4.0.30319.544 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有 MS12-035 LDR 安全更新)
  • 4.0.30319.1008 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有 MS13-052 GDR 安全更新)
  • 4.0.30319.1022 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有 MS14-009 GDR 安全更新)
  • 4.0.30319.1026 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有 MS14-057 GDR 安全更新)
  • 4.0.30319.2034 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有 MS14-009 LDR 安全更新)

4.5

  • 4.0.30319.17626 = .NET 4.5 RC
  • 4.0.30319.17929 = .NET 4.5 RTM
  • 4.0.30319.18010 = Windows 8 上的 .NET 4.5
  • 4.0.30319.18052 = Windows 7 SP1 64 位上的 .NET 4.5
  • 4.0.30319.18063 = Windows 7 SP1 64 位上的 .NET 4.5(带有 MS14-009 安全更新)

4.5.1

  • 4.0.30319.18408 = Windows 7 SP1 64 位上的 .NET 4.5.1
  • 4.0.30319.18444 = Windows 7 SP1 64 位上的 .NET 4.5.1(带有 MS14-009 安全更新)
  • 4.0.30319.34014 = Windows 8.1 64 位上的 .NET 4.5.1

4.5.2

  • 4.0.30319.34209 = Windows 7 SP1 64 位上的 .NET 4.5.2
  • 4.0.30319.34209 = Windows 8.1 64 位上的 .NET 4.5.2

4.6 及更高版本

  • 4.0.30319.42000

我在 Windows 更新历史记录中没有看到任何 .NET 更新,因此我猜测 v18010 的更新是作为 KB 2756872 的一部分安装的。 .

更新:显然,由于原始下载中的数字签名错误,微软更新了 .NET 4.5 设置。 KB 2770445 .

关于.net - 如何可靠地检测实际安装的.NET 4.5版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12971881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com