[wix-users] Products & Releases

Edwin Castro egcastr at gmail.com
Thu Jan 10 10:17:08 PST 2019

The term "major upgrade" is Windows Installer jargon and may not mean what
you think it means.

A major upgrade is defined by the WIndows Installer to occur when there is
a change in the ProductCode *and* a change in the ProductVersion. There are
two other types of upgrades called "small update" and "minor upgrade". See
the following for details.


Note the page says there must be a change in the ProductVersion for minor
upgrades and major upgrades but it says nothing about what kind of change
in the ProductVersion is required. As an example, a ProductVersion change
from 1.0.0 to 1.0.1 can be both a minor upgrade OR a major upgrade
depending on whether ProductCode changed or not.

The WindowsInstaller uses UpgradeCode was the way to relate different
products with different ProductCodes. Read about Major Upgrades to learn
more about UpgradeCodes and how they are used in the Upgrade Table to.

Warning: You can end up in scenarios where you change the ProductCode
without changing the ProductVersion. In cases like this you can end up with
multiple entries in ARP for your product because they are different
products according to the Windows Installer. If your CI build processes
ensure both ProductCode and ProductVersion change on every build, then you
shouldn't accidentally run into this issue.

Also be aware there are restrictions imposed by the Windows Installer on
the valid range of values for ProductVersion (max version is 255.255.65535)
A fourth version component, if specified, is ignored so
ProductVersion= and ProductVersion= are not different in the
context of Windows Installer upgrades.

Edwin G. Castro

On Thu, Jan 10, 2019 at 9:50 AM Todd Hoatson via wix-users <
wix-users at lists.wixtoolset.org> wrote:

> I'm still a bit new to WiX, and I'm still a bit confused about ProductCode
> & UpgradeCode.  I read the following in WiX 3.6: A Developer's Guide to
> Windows Installer XML, Chapter 1. Getting Started:
> "The final attribute to consider is UpgradeCode. This should be set to a
> GUID and will identify your product across releases. It remains constant
> for a product line, even among different product versions. Think: Microsoft
> Office 2007 and Office 2010. Both would have the same UpgradeCode.
> Therefore, it should stay the same even when the ProductCode and Version
> change."
> So UpgradeCode should stay the same across versions of the product, whereas
> ProductCode should change with each major upgrade.  Hmmm... that seems
> exactly backward.  Am I missing something?
> Anyway, we would like our installer to uninstall prior installs of the same
> major version, i.e. minor versions would replace the prior install, but NOT
> uninstall prior installs of a different major version.  So, for example,
> Version 6 would exist side-by-side with version 5, until the user is
> satisfied that all is working well.  (I have other software on my machine
> that does this, so I know it's possible...)
> Currently, the installer we have created will automatically uninstall the
> prior major version.  How do we set up the GUIDs & WiX code to keep this
> from happening?
> thanks!
> Todd Hoatson
> Mobile: 763-291-3312
> Email:   todd.hoatson at gmail.com
> www.linkedin.com/in/toddhoatson
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/

More information about the wix-users mailing list