title: How to consistently detect 4.5.1 is installed from registry
body: <p>My .net app is built using 4.5.1. Currently I am working on the installer project, and using symantec wise script for it. I added a per-requisite to continue installation only if .net 4.5.1 is installed.</p>
  
  <p>The registry keys to detect this is explained in <a href="http://msdn.microsoft.com/en-us/library/hh925568%28v=vs.110%29.aspx" rel="nofollow noreferrer">http://msdn.microsoft.com/en-us/library/hh925568%28v=vs.110%29.aspx</a>.</p>
  
  <p>As per above I either detect 378758 or 378675 for release key in the registry path.</p>
  
  <p>However, Microsoft released another in place update 4.5.2 (key:379893) which replaces the earlier registry key. 
  So my check does not allow the app to be installed in system with 4.5.2. However since it's an in place update for 4.5.1, logically it should. I can add additional release version of 379893. That would satisfy the per-requisite. </p>
  
  <p>However if Microsoft releases another in-place update, as say 4.5.3, my check will fail again. </p>
  
  <p>Since it is an installer project, I can not change the per-requisite logic, once it goes out the release door.</p>
  
  <p>So, I come to my question, Is there a robust way to detect the .net 4.5.1 and all it's later in place updates, and can that be done through registry only?</p>
  
  <p>I'm attaching the screenshot of the registry how it looks when updated to 4.5.2.
  <img src="https://i.stack.imgur.com/oZ9bv.png" alt="enter image description here"></p>