1
votes

I have to create an installer with an upgrade section. I could develop that by reading many of the posts about that topic in this website. However, the only way I have found to properly run the upgrade installer is by the following command line:

msiexec /i MyInstaller.msi REINSTALL=ALL REINSTALLMODE=vomus

If I run the installer by double-clicking the MSI file, I get an error: "Another version of this product is already installed..."

I need the installer to be run by double-clicking the MSI rather than using a command line. As the users of this installer are very reluctant to execute installers in a different way, I strongly need to resolve it.

I have been through many questions in StackOverflow, where I found how to implement the upgrade tag (but it never worked with double-click):

<Product Id="3ddf61a1-668f-421d-856f-4bb535a2ccc2"
       Name="Product v1.7.5.21"
       Language="1033"
       Version="1.7.5.21"
       Manufacturer="Company"
       UpgradeCode="BC52FD13-7F1D-4D92-BB6E-D3FCB2727E9B">
<Package InstallerVersion="200" Compressed="yes"/>

<Upgrade Id='15E2DAFB-35C5-4043-974B-0E342C25D76B'>
  <UpgradeVersion Property='OLDVERSIONFOUND' IncludeMinimum='no' Minimum='0.0.0.0' />
</Upgrade>

<InstallExecuteSequence>
  <LaunchConditions After='AppSearch' />
  <RemoveExistingProducts After='InstallValidate' />
</InstallExecuteSequence>

However, whatever I do I have to run the upgrade installer by the command line. Otherwise, I get the following error:

"Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel."

I will really appreciate any help you can give me.

1

1 Answers

1
votes

Two things:

  1. Try using the MajorUpgrade element available in WiX v3.5+ instead of the Upgrade element. Much easier to get correct.
  2. You must change the Product/@Id every time you want to enable a major upgrade. In general, I recommend always going with major upgrades and using Product/@Id='*'.

This is documented in the MSI SDK here: http://msdn.microsoft.com/en-us/library/windows/desktop/aa369786(v=vs.85).aspx