title: How to reliably detect the actual .NET 4.5 version installed?
body: <p>My actual problem is that I have encountered two versions of .NET 4.5 full setups:</p>
  
  <ul>
  <li>a (possibly) older one, which is also available when downloading SQL Server Data Tools
  <ul>
  <li>size: <code>50,349,920</code></li>
  <li>md5: <code>a5e81d1b3905ada0a6e35fd6c6a2e1f4</code></li>
  </ul></li>
  <li>a (possibly) newer one downloaded this morning from here: <a href="http://www.microsoft.com/visualstudio/eng/downloads">http://www.microsoft.com/visualstudio/eng/downloads</a>
  <ul>
  <li>size: <code>50,352,408</code></li>
  <li>md5: <code>d02dc8b69a702a47c083278938c4d2f1</code></li>
  </ul></li>
  </ul>
  
  <p>The version for both setups is <code>4.5.50709.17929</code>. Inside, the main difference is the <code>netfx_Full.mzz</code> 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.</p>
  
  <p>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?</p>
  
  <p><strong>Update</strong></p>
  
  <p>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.</p>
  
  <p><strong>Update 2</strong></p>
  
  <p>The version listed in the registry is the same for both setups: <code>4.5.50709</code></p>
  
  <p><strong>Update 3</strong></p>
  
  <p><a href="http://www.microsoft.com/en-us/download/details.aspx?id=42642">.NET 4.5.2</a> is now available:</p>
  
  <blockquote>
    <p>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. </p>
  </blockquote>