我的实际问题是我遇到了两个版本的 .NET 4.5 完整设置:
- a (possibly) older one, which is also available when downloading SQL Server Data Tools
- size:
50,349,920
- md5:
a5e81d1b3905ada0a6e35fd6c6a2e1f4
- a (possibly) newer one downloaded this morning from here: http://www.microsoft.com/visualstudio/eng/downloads http://www.microsoft.com/visualstudio/eng/downloads
- size:
50,352,408
- md5:
d02dc8b69a702a47c083278938c4d2f1
两种设置的版本都是4.5.50709.17929
。在内部,主要区别在于netfx_Full.mzz
文件,但是在使用 7-zip 提取内容后,即使文件内容不同(我已经检查了大约 426 个随机文件中的大约 20 个),我最终还是得到了很多具有相同版本的文件,所以我真的不能告诉哪个是新的。
有没有一种方法可以可靠地检测已安装的 .NET 4.5 运行时的实际版本,以便我可以仅在确实需要时运行安装程序?
Update
我检查了所有具有不同内容的 426 个文件,并且所有这些文件在两种设置中都具有相同的 ProductVersion 和 FileVersion。因此,注册表或文件校验和是下一步。
Update 2
注册表中列出的版本对于两种设置都是相同的:4.5.50709
Update 3
.NET 4.5.2 http://www.microsoft.com/en-us/download/details.aspx?id=42642现在可用:
此版本的 .NET Framework 与 .NET Framework 3.5 SP1 及更早版本并行运行,但对 .NET Framework 4、.NET Framework 4.5 和 .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 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 更新以及每个安全更新)。
以下是在野外观察到的运行时版本的一些示例:
Base 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 https://support.microsoft.com/en-us/kb/2604121GDR 安全更新)
- 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 https://support.microsoft.com/en-us/kb/2729449GDR 安全更新)
- 4.0.30319.544 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有MS12-035 https://support.microsoft.com/en-us/kb/2604121LDR 安全更新)
- 4.0.30319.1008 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有MS13-052 https://support.microsoft.com/en-us/kb/2835393GDR 安全更新)
- 4.0.30319.1022 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有MS14-009 https://support.microsoft.com/en-us/kb/2898855GDR 安全更新)
- 4.0.30319.1026 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有MS14-057 https://support.microsoft.com/en-us/kb/2972106GDR 安全更新)
- 4.0.30319.2034 = Windows XP SP3、7、7 SP1 上的 .NET 4.0(带有MS14-009 https://support.microsoft.com/en-us/kb/2898855LDR 安全更新)
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 https://support.microsoft.com/en-us/kb/2898864安全更新)
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 https://support.microsoft.com/en-us/kb/2898869安全更新)
- 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 及更高版本
我在 Windows 更新历史记录中没有看到任何 .NET 更新,因此我猜测 v18010 的更新是作为知识库 2756872 http://support.microsoft.com/kb/2756872.
更新:显然,由于原始下载中的数字签名错误,微软更新了 .NET 4.5 设置。知识库 2770445 http://support.microsoft.com/kb/2770445.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)