Reputation: 2286
I wrote a simple wix installer with gui, which installs well. But when I run the same .msi file a second time, it takes me through the normal installation process in the gui, but uninstalls my app at the end. Then if I run this same .msi file a third time, the installer still does through the installation gui normally, but ends up doing "uninstallation".
I don't understand why it doesn't behave like every other installer and handle installation and uninstallation gracefully.
here is part of my product xml
<Product Id="*" Language="1033" Codepage="1252" Name="..."
Version="$(var.ProductVersion)" Manufacturer="..." UpgradeCode="BDF9E310-5897-48D4-AB08-889D405F9X56">
<Package InstallerVersion="300" Platform="x64" Compressed="yes" InstallScope="perMachine" Manufacturer="..."
Comments="..." Description="..." Keywords="..."/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
Upvotes: 1
Views: 402
Reputation: 42236
<Product Id="*" Name="..." Version="" Manufacturer="..." UpgradeCode="...">
Auto-GUID: The
Id="*"
section means "auto generate product code" (the use of the*
means auto-generate). When you do that every build or rebuild of your setup gets a new product code. This amounts to a major upgrade in MSI-terms if you also change theProductVersion
(in one of the first 3 digits) AND you have aMajorUpgrade element
such as the one you are using in the source (which is standard by the way).Solution: You can hard code a product code if you like to be able to control when it changes.
Note: You might be in a dirty state on the system with many "overlapping" installations. Look for duplicate installations of your product by opening the Add / Remove Programs applet: WinKey + Tap R =>
appwiz.cpl
=> Enter. I would uninstall all instances, and maybe prefer to test setups on virtuals henceforth? (this also helps to discover hidden runtime depenencies - provided the virtual is saved without most runtimes).
Links: Some links with some background information on major upgrades.
MSI SDK:
Flexera / Installshield:
Upvotes: 2