[wix-users] Component IDs for Major Upgrade

Edwin Castro egcastr at gmail.com
Thu Dec 7 10:20:17 PST 2017


You should definitely *not* change component GUIDs if the component has not
changed.

I would discourage you from scheduling RemoveExistingProducts
afterInstallFinalize. To quote from the documentation:

"Schedules RemoveExistingProducts after the InstallFinalize standard
action. This is similar to the afterInstallExecute and
afterInstallExecuteAgain schedulings but takes place outside the
installation transaction so if installation of the upgrade product fails,
Windows Installer does not roll back the removal of the installed product,
so the machine will have both versions installed."

Any scheduling that happens outside the installation transaction is bad for
users when failures occur and will create a negative impression of the
product and company responsible for that product.

--
Edwin G. Castro

On Thu, Dec 7, 2017 at 9:47 AM, Ven H <venh.123 at gmail.com> wrote:

> Thanks a lot for your response Edwin. In my case, only my file (content /
> version) changes and not key paths. Also, I am setting the Schedule
> attribute on the MajorUpgrade element to afterInstallFinalize. Hence, I
> believe I should not change the Component Guids. Right?
>
> Regards,
> Venkatesh
>
> On Thu, Dec 7, 2017 at 10:49 PM, Edwin Castro via wix-users <
> wix-users at lists.wixtoolset.org> wrote:
>
>> Note you *MUST* change the component GUID if the component changes in any
>> way (including key path) with the exception of a file's version.
>>
>> If the component hasn't changed at all but the file's version changed,
>> then
>> the component GUID must not change if you schedule RemoveExistingProducts
>> before InstallFinalize. This is required because Windows Installer will
>> reinstall the component first (including increasing ref counts) and then
>> uninstall components at the end (decreasing ref counts). If you change
>> anything about a component other than the file's version, then you are
>> breaking the component rules and upgrades will not work properly.
>>
>> If you schedule RemoveExistingProducts after InstallInitialize, then your
>> old product is completely uninstalled before the new product is installed.
>> In this case you don't have to be so strict with the component rules
>> because your ref counts never go up higher than 1. The downside of this
>> approach is that you completely uninstall the old product and that might
>> have effects you didn't expect like configuration and data files might be
>> deleted and recreated.
>>
>> --
>> Edwin G. Castro
>>
>>
>>
>> On Wed, Dec 6, 2017 at 12:27 PM, Hoover, Jacob via wix-users <
>> wix-users at lists.wixtoolset.org> wrote:
>>
>> > Depends on when RemoveExistingProducts is scheduled and if the new
>> install
>> > has a component in the same key path but a different component id.
>> >
>> > Best rule of thumb is 1 file per component, and let WiX generate stable
>> > GUID's (ala *).  This will cause any change in the key path to get a new
>> > GUID.
>> >
>> > -----Original Message-----
>> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
>> Behalf
>> > Of Paul Mumford via wix-users
>> > Sent: Wednesday, December 6, 2017 2:18 PM
>> > To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
>> > Cc: Paul Mumford <paul.mumford at gmail.com>
>> > Subject: Re: [wix-users] Component IDs for Major Upgrade
>> >
>> > Yeah think so, the only guid that needs changing is the package (which I
>> > found easier to just use * to generate a new one) and change the major
>> > version. As long as you never change the upgrade guid. Someone confirm
>> > please because im no longer in that contract and cant see the source
>> code
>> > anymore. I did have that all written down in comments in the package
>> after
>> > r&d.
>> >
>> > On 6 December 2017 at 17:35, Ven H via wix-users <
>> > wix-users at lists.wixtoolset.org> wrote:
>> >
>> > > Do the component Guids need to be the same for Major upgrade?
>> > >
>> > > Regards,
>> > > Venkatesh
>> > >
>> > > ____________________________________________________________________
>> > > WiX Toolset Users Mailing List provided by FireGiant
>> > > http://www.firegiant.com/
>> > >
>> >
>> > ____________________________________________________________________
>> > WiX Toolset Users Mailing List provided by FireGiant
>> > http://www.firegiant.com/
>> >
>> > ____________________________________________________________________
>> > WiX Toolset Users Mailing List provided by FireGiant
>> > http://www.firegiant.com/
>> >
>>
>> ____________________________________________________________________
>> WiX Toolset Users Mailing List provided by FireGiant
>> http://www.firegiant.com/
>>
>
>


More information about the wix-users mailing list