My actual problem is that I have encountered two versions of .NET 4.5 full setups:
50,349,920
a5e81d1b3905ada0a6e35fd6c6a2e1f4
50,352,408
d02dc8b69a702a47c083278938c4d2f1
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.
The version of .NET Framework (4.5 and later) installed on a machine is listed in the registry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. If the Full subkey is missing, then .NET Framework 4.5 or above isn't installed.
Open Start. Search for Command Prompt, right-click the top result, and select the Run as administrator option. Type the following command to determine the version of . NET installed and press Enter: reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" /s To make sure that version 4.
The documented way to check the version is to launch dotnet --info or dotnet --list-runtimes and inspect the results.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With