title: WiX - Allowing a *manual* uninstall of one msi to uninstall another msi that shares the same UpgradeCode (and not just during the MajorUpgrade)
body: <p>I have a bootstrapper (C# windows forms applications) that trigger two different msi files consecutively out of its resource. The instance transforms between the msi are 'paired' such that one instance transform from the first msi shares an UpgradeCode with one instance tranform from the second msi; these are the pairs that are installed together via the bootstrapper.</p>
  
  <p>The 'core' msi (the first msi that runs) includes the MajorUpgrade element such that when a higher-versioned 'core' msi is run, all related products with a lower version are first uninstalled - this includes the secondary program installed via the second msi since it uses the same UpgradeCode and is recognized as a related product. This is the behaviour I want so that's good, but if I uninstall the 'core' msi program manually via the control panel, it only installs that one. I'd like to get it to uninstall the secondary program as well, even if I manually uninstall the 'core' one.</p>
  
  <p>Do I need to write a custom function that manually calls the uninstall of the secondary msi's program with the ProductCode? E.g., as per here:</p>
  
  <p><a href="https://stackoverflow.com/questions/6483669/wix-uninstall-different-product">Wix - uninstall different product</a></p>
  
  <p>Or, can I explicitly schedule RemoveExistingProducts to be run for uninstalls? Something like:</p>
  
  <pre><code>&lt;InstallExecuteSequence&gt;
    &lt;RemoveExistingProducts After="InstallFinalize"&gt;REMOVE&lt;/RemoveExistingProducts&gt;
  &lt;/InstallExecuteSequence&gt;
  </code></pre>
  
  <p>Is that not possible because after InstallFinalize of the 'core' msi, it knows nothing about the secondary msi? Basically, I'm wondering if I can also use the RemoveExistingProducts standard action for the manual uninstall the case, like it's doing for the MajorUpgrade case.</p>
  
  <p>Thanks so much in advance.</p>