[wix-users] Always do major upgrades

Skildum, Mat Mathew.Skildum at Aspect.com
Wed Dec 7 07:33:47 PST 2016


Generating new component GUIDs will have no bearing on the issue you are trying to solve.  MSI will see that the component does not exist, but the file that is installed has a higher version than the one you are trying to install.  You will still have the same case as you described.

The only way I have found to get around the way MSI updates files, and create an always overwrite situation like InstallShield supports, is to set a pseudo version.  In fact I took this straight from InstallShield.  If you look at an InstallShield generated MSI where always overwrite was being used, you will see they set a bogus file version to force the overwrite.  Of course this is based on older versions of Installshield as I have not generated an MSI using InstallShield for many years.

Mat Skildum



-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Wolfgang Haupt
Sent: Wednesday, December 7, 2016 9:04 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Always do major upgrades

Thx for your fast answer.
Would it be an option to always harvest my files with heat in a create_setup.bat and generate new GUID's for every component?
Reading the MSI-Log it seems, the windows installer takes the GUID of my component to lookup if it's already installed, or does it take the keypath into account and I really have to change the filedate or version, to get this right.
Basically this setup is a migration of a very old InstallShield-Setup that uses "always overwrite" utterly often.


Skildum, Mat <Mathew.Skildum at aspect.com> schrieb am Mi., 7. Dez. 2016 um
15:56 Uhr:

> MSI does not truly support this type of functionality without some
> hacks to the MSI.  Basically you have create a pseudo "always overwrite"
> situation by setting false version numbers on the version components.
> I do this with a post build step where I call a small VBScript that
> updates the file version in the Files table to 99.99.99 or some other
> high value you will never reach for a version.  You can do this for
> all files if you want a global over write, or just for the versioned
> files if they are all you are worried about.
>
> If this has been done, you should be able to upgrade or downgrade if
> no issue as long as your upgrade table id handled correctly.
>
> Mat Skildum
>
>
>
> -----Original Message-----
> From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> Behalf Of Wolfgang Haupt
> Sent: Wednesday, December 7, 2016 8:22 AM
> To: wix-users at lists.wixtoolset.org
> Subject: [wix-users] Always do major upgrades
>
> Hello,
>
> I think I stumbled across following problem:
>
>
> http://stackoverflow.com/questions/15138731/wix-major-upgrade-not-inst
> alling-all-files
>
>
> https://blogs.msdn.microsoft.com/astebner/2015/11/16/why-windows-insta
> ller-removes-files-during-a-major-upgrade-if-they-go-backwards-in-vers
> ion-numbers/
>
>
> http://stackoverflow.com/questions/4227456/windows-installer-deletes-v
> ersioned-file-during-product-upgrade-instead-of-down?rq=1
>
>
> I basically want to be able to up and downgrade my application from
> whatever versions.
> It's no problem for me that it cannot track files and save some
> installation time, I just want to remove the existing installation and
> then install the "new" (or older) version.
>
> When I read the docs it seems to me if I can use the MajorUpgrade-Tag
> with "AllowDowngrades=yes", but still the installer is checking the
> version of my Components after CostInitialize and keeps saying:
> MSI (s) (9C:34) [15:02:05:904]: Disallowing installation of component:
> {GUID} since the same component with higher versioned keyfile exists
>
> After that it removes my current version and does not install the
> mentioned components anymore.
> This keeps puzzling me since days.
>
> Does anyone have an answer/opinion on this topic?
>
>
> Best Regards,
> Wolfgang
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/ This email (including any attachments) is
> proprietary to Aspect Software, Inc. and may contain information that
> is confidential. If you have received this message in error, please do
> not read, copy or forward this message.
> Please notify the sender immediately, delete it from your system and
> destroy any copies. You may not further disclose or distribute this
> email or its attachments.
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
This email (including any attachments) is proprietary to Aspect Software, Inc. and may contain information that is confidential. If you have received this message in error, please do not read, copy or forward this message. Please notify the sender immediately, delete it from your system and destroy any copies. You may not further disclose or distribute this email or its attachments.


More information about the wix-users mailing list