title: Why does my Visual Studio Win32 project require .NET 3.5 SP1 to install?
body: <p>Using Visual Studio 2008, I created a C++ <a href="http://en.wikipedia.org/wiki/Windows_API" rel="nofollow noreferrer">Win32</a> project. To release the program, I made a Visual Studio setup project within the same solution.</p>
  
  <p>The setup.exe prompts my users to install .NET 3.5 SP1, which is often a 15+ minute install and only allowed to administrator level accounts. If they do not there is an error along the lines of "wrong framework". I am confused over what in my project requires .NET 3.5 SP1. I suspect just because that is the framework my PC is on... Is there a way to broaden which frameworks it will run on?</p>
  
  <p>The code is mostly Win32 API calls. Just in case, here are my dependencies and #includes:</p>
  
  <pre><code>gdiplus.lib
  comctl32.lib
  Winmm.lib
  d3d9.lib
  </code></pre>
  
  <p>(The setup project automatically added comdlg32.dll, then tells me to exclude it.)</p>
  
  <pre><code>#include &lt;windows.h&gt;
  #include &lt;tchar.h&gt;
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;iostream&gt;
  #include &lt;fstream&gt;
  #include &lt;string.h&gt;
  
  #include &lt;commctrl.h&gt;
  #include &lt;process.h&gt;
  #include &lt;sstream&gt;
  #include &lt;math.h&gt;
  #include &lt;d3d9.h&gt;
  #include &lt;time.h&gt;
  #include &lt;gdiplus.h&gt;
  </code></pre>
  
  <p>My guess is that somewhere through windows.h there is a WIN_VER or similar version setting that is set to .NET 3.5 SP1, and this is where the dependency comes from. If that is the case, and I need to define a different version, I would love to hear everyone's advice on does / don'ts / and how-to and how far back can I go for maximum inclusion.</p>