title: Visual Studio 2010 Setup Project - Minor update to an existing installation
body: <p>I have created a WPF app in Visual Studio 2010. I have also created a Setup Project to install this app. The Setup Project handles prerequisites, copies the binaries, populates start menu and desktop, sets up file associations and icons, etc. All this is working great.</p>
  
  <p>I am now working on an updater, which should update my app to a higher minor version (bug fixes, etc). I am using the NetSparkle framework to handle the update process. I've got the process itself working, but I am having issues creating an update MSI file that does what I want.</p>
  
  <p>Here is what I have tried:</p>
  
  <ol>
  <li>I created a second Setup Project, with the purpose of building the "update" MSI file. All it does is copies new binaries. It has a one-screen UI, and obviously does not handle prerequisites, shortcuts, icons, file associations, etc.</li>
  <li>I have made sure the <code>UpgradeCode</code> is the same as my main installer Setup Project's UpgradeCode</li>
  <li>I have set the <code>Version</code> to be higher than that of my main installer Setup Project</li>
  </ol>
  
  <p>So I build the updater MSI, and plug it into the NetSparkle update process. It seems to work BUT it is creating a <em>second</em> entry for my App in Control Panel Programs and Features (with the higher version number), and it also seems to be resetting the configuration settings for my App - I need those to stay intact! As I said, this is just a minor bug fix update, not a completely new replacement.</p>
  
  <p>What am I doing wrong? Can somebody point me in the right direction? Do I even need an MSI to just update files? (Should I be using a Patch instead? If so, how do I go about creating one?)</p>
  
  <p>UPDATE: I've been playing around with <code>RemovePreviousVersions</code>. If I set it to <code>false</code>, the result is as described above. If I set it to <code>true</code>, then the duplicate entry in Programs and Features is gone, but it also removes all the file associations, icons, start menu and desktops links, etc, which is not what I want. It also breaks the NetSparkle process, in that the app is not automatically relaunched. Really, all I want to do is overwrite the installation files, and that's it, regardless of whether the user is upgrading up one minor version or X minor versions.</p>