我的实际问题是,我遇到了两个版本的.NET 4.5完整安装程序:
50,349,920
a5e81d1b3905ada0a6e35fd6c6a2e1f4
50,352,408
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现在可用:
最佳答案
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的用户不会遇到兼容性问题),尽管我不知道他们为什么不更改安装程序的版本号。
另外,请注意System.Environment.Version
报告的.NET版本号和运行时版本号之间存在差异。对于.NET 4.5,后者仍然是4.0.30319。*,只有修订号更改(.NET 4.5更新以及每个安全更新)。
以下是一些野外观察到的运行时版本示例:
Base 4.0
4.5
4.5.1
4.5.2
4.6及更高版本
我的Windows更新历史记录中没有看到任何.NET更新,所以我猜对v18010的更新已安装为KB 2756872的一部分。
更新:显然,由于原始下载中的数字签名错误,Microsoft更新了.NET 4.5安装程序。 KB 2770445。
关于.net - 如何可靠地检测实际安装的.NET 4.5版本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12971881/