[wix-users] Component IDs for Major Upgrade

Ven H venh.123 at gmail.com
Fri Dec 8 10:13:26 PST 2017


Thank you Edwin. So, what do you recommend. When should I schedule the
RemoveExistingProducts, if not afterInstallFinalize. Please advise. Also, I
tried this because of a strange issue that, during the Upgrade, even if a
service exe has not changed at all, the upgrade process is uninstalling  /
removing and reinstalling it. I tried many things but nothing seems to be
working. Also, could you please provide a link to the documentation from
which you have quoted the point above?

Regards,
Venkatesh

On Thu, Dec 7, 2017 at 11:50 PM, Edwin Castro <egcastr at gmail.com> wrote:

> 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