title: How to get WiX major upgrade working?
body: <p>I am struggling to enable the major upgrade functionality in WiX.</p>
  
  <p>I want every new version of the installer to be a major upgrade (full uninstall, then new install) as we don't want different upgrade and clean install versions.</p>
  
  <p>I started off trying to do it using the  tag stuff, but I kept getting "Another version is installed." error message when I run the installer.</p>
  
  <p>So I implemented the new  tag that was added in V3.5 to make upgrades easier. I was still getting the error message.</p>
  
  <p>I then read somewhere that you need to change the  Id GUID for each new version. So I set Id="*" to get WiX to generate them.</p>
  
  <p>Now when I install the newer version it doesn't uninstall the older version, and you end up with two installations to the same folder. I worked this out because running either MSI (new or old) would bring up the repair/remove screen.</p>
  
  <p>Also the program was not overwritten with the new version.</p>
  
  <p>Here is the start of my WiX script:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"&gt;
  
      &lt;Product Id="*"
               Name="Foo"
               Language="1033"
               Codepage="1252"
               Version="!(bind.FileVersion.Foo.exe)"
               Manufacturer="Foo Bar Ltd."
               UpgradeCode="dac2fab2-7d76-4e47-b25f-0748380dab81"&gt;
  
          &lt;Package
                   Description="Foo"
                   Comments="This installer database contains the logic and data required to install Foo."
                   InstallerVersion="300"
                   Languages="1033"
                   SummaryCodepage="1252"
                   Platform="x86"
                   Compressed="yes" /&gt;
  
          &lt;!-- Remove older versions --&gt;
          &lt;!-- Important note: MSI ignores the last version digit 1.0.0.? when comparing versions, so always change at least the 3rd digit for new external releases--&gt;
          &lt;MajorUpgrade DowngradeErrorMessage="The version currently installed is newer than the version you are attempting to install."/&gt;
  </code></pre>