My actual problem is that I have encountered two versions of .NET 4.5 full setups:
- a (possibly) older one, which is also available when downloading SQL Server Data Tools
- size:
50,349,920
- md5:
a5e81d1b3905ada0a6e35fd6c6a2e1f4
- size:
- a (possibly) newer one downloaded this morning from here: http://www.microsoft.com/visualstudio/eng/downloads
- size:
50,352,408
- md5:
d02dc8b69a702a47c083278938c4d2f1
- size:
The version for both setups is 4.5.50709.17929
. Inside, the main difference is the netfx_Full.mzz
file, but after extracting the content with 7-zip I end up with a lot of files with the same version, even if the file content is different (I have checked about 20 random files from about 426), so I can't really tell which one is newer.
Is there a way to reliably detect the actual version of the installed .NET 4.5 runtime, so I can run the setup only if it's really required?
Update
I have checked all the 426 files that have different content, and all of them are having the same ProductVersion and FileVersion in both setups. So, registry or file checksums are the next step.
Update 2
The version listed in the registry is the same for both setups: 4.5.50709
Update 3
.NET 4.5.2 is now available:
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.
If someone needs the
System.Environment.Version
value against the .net version, arranged in a table (need to perform=Vlookup
with excel etc...)here is a plunker I have created for that.
enter the link above and you will be able to copy the this table image:
you can always go to the Windows/Microsoft.net/Framework/4.0.30319 and look at the system.dll file...right click properties and see go to details..should show you the version... system.dll for 4.5.2
MS recently patched .NET 4.5 to restore backwards compatibility with .NET 4.0 in some scenarios (see http://blogs.msdn.com/b/dotnet/archive/2012/10/17/net-framework-4-5-off-to-a-great-start.aspx).
It's possible that MS updated the setup with these changes (so that users upgrading to .NET 4.5 don't run into compat trouble), though I don't know why they wouldn't change the version number on the setup.
Also, note that there's a difference between the .NET version number and the runtime version number as reported by
System.Environment.Version
. The latter still is 4.0.30319.* for .NET 4.5, only the revision number changes (with the .NET 4.5 update, and also with every security update).Here are some examples of runtime versions observed in the wild:
Base 4.0
4.5
4.5.1
4.5.2
4.6 and later
I don't see any .NET updates in my Windows Update history, so I guess the update to v18010 got installed as part of KB 2756872.
Update: apparently Microsoft updated the .NET 4.5 setup due a mistake with the digital signatures in the original download. KB 2770445.