[wix-users] Bootstrapper not detecting already installed msi package

Jon Earle earlej at hotmail.com
Fri Sep 9 07:48:28 PDT 2016


I am confused... it's a discussion that we are opening up now (it affects all of our products).  Sorry to jump on this Q, but it's directly related.

We wish to begin allowing upgrades to the product.  We had previously been using a.b.c.d version numbers in the MSI (where the 'd' was our build number for development builds and the release number for release candidates / releases), but I then learned that MS only allows three digits (https://msdn.microsoft.com/en-us/library/aa370859(VS.85).aspx).  However, looking in the ARP control panel, there are a lot of apps that have a four-digit version code, including the WiX Toolkit.

Further, it is unclear which guids and versions need to be updated or incremented when you have an updated (or simply, a newly built) MSI inside a Bundle.

Here are my snips. The MSI definition:

   <Product Id="*" UpgradeCode="A_GUID" Version="$(var.ProductVersion)" >
        <Package Id="*" InstallScope="perMachine" />
        <MajorUpgrade AllowSameVersionUpgrades="yes" DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

And the Bundle definition:

    <Bundle Version="$(var.ProductVersion)" UpgradeCode="ANOTHER_GUID">

Variable defs:

<?define ProductVersion = "$(env.VERSION)" ?>

I removed the ".$(env.RELEASE)" from the ProductVersion variable definition soas to have only three numbers.

Further, I copied the upgrade code from the previously released product, which was built via installshield, thinking that we could upgrade from the old to the new... but installing the new product, results only in a second entry in ARP.  Looking for some guidance on what exactly we need to update in the bundle and product wxs files soas to permit upgrades from an older release, from an earlier release of the current product and for same-version developer builds.

Cheers!

> From: phill.hogland at rimage.com
> To: wix-users at lists.wixtoolset.org
> Date: Fri, 9 Sep 2016 12:39:55 +0000
> Subject: Re: [wix-users] Bootstrapper not detecting already	installed	msi	package
> 
> The key idea is to follow the Major Upgrade rules for you MSI (and as the idea is generally applied to a Bundle although a bundle is not an MSI).
> 
> 
> So yes, use Product/@Id='*' in the MSI.  (The Bundle's similarity is a hidden implementation detail of the WiX build system, but is also equivalent to using '*')
> 
> 
> Increment your versions.  For the MSI in the only the first three dot.quads are considered, but for the Bundle any portion of the version may be incremented.  There are many different approaches you could take to automate this.  Look at MSBuild Extensions or write an MSBuild ITask,  But the conservative approach is to make sure that you increment you version of each project (Bundle or MSI) every time you do a build.
> 
> 
> Do not change you Upgrade Code between builds if you want the new build to upgrade an older build.
> 
> 
> 
> 
> ________________________________
> From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Andres Armengol <andres.armengol at pantec.com>
> Sent: Friday, September 9, 2016 4:48:11 AM
> To: WiX Toolset Users Mailing List
> Subject: Re: [wix-users] Bootstrapper not detecting already installed msi package
> 
> Thanks but changing the product's Id does not change that effect.
> 
> I wonder what does the bootstrapper to detect the bundle, must be a kind of Id...
> 
> -----Ursprüngliche Nachricht-----
> Von: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] Im Auftrag von Farrukh Waheed
> Gesendet: Freitag, 9. September 2016 11:18
> An: WiX Toolset Users Mailing List
> Betreff: Re: [wix-users] Bootstrapper not detecting already installed msi package
> 
> In your MSI's Product Id, try using "*" instead of static Guid..
> 
> On 9 September 2016 at 01:56, Andres Armengol <andres.armengol at pantec.com>
> wrote:
> 
> > I have the following attributes defined:
> >
> > Bundle:
> >     Name='Foobar 1.0'
> >     Version='1.0.0'
> >     Manufacturer='Acme Ltd.'
> >     UpgradeCode="{005312BC-FF1E-46E9-8C60-9251C9E355B3}"
> >
> > Product:
> >     Name='Foobar 1.0'
> >     Id='{F32B8FF0-623A-4E52-8AB1-B4984D166DFB}'
> >     UpgradeCode='{2421083E-A8D7-43C0-A862-D40BF0BDF92C}'
> >     Language='1033'
> >     Version='1.0.0'
> >     Manufacturer='Acme Ltd.'
> >
> > Package:
> >       Id='*'
> >       Keywords='Installer'
> >       Description="Acme's Foobar 1.0 Installer"
> >       Comments='Foobar is a registered trademark of Acme Ltd.'
> >       Manufacturer='Acme Ltd.'
> >       InstallerVersion='100'
> >       Languages='1033'
> >       Compressed='yes'
> >       InstallScope='perMachine'
> >
> > Do I have to define the codes differently?
> >
> > Thanks
> >
> > -----Ursprüngliche Nachricht-----
> > Von: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] Im
> > Auftrag von Rob Mensching
> > Gesendet: Freitag, 9. September 2016 10:04
> > An: WiX Toolset Users Mailing List
> > Betreff: Re: [wix-users] Bootstrapper not detecting already installed
> > msi package
> >
> > Rebuilding something (usually) makes it different. Look at your
> > BundleCode, ProductCode and PackageCode.
> >
> > _____________________________________________________________
> >  Short replies here. Complete answers over there:
> > http://www.firegiant.com/
> >
> > -----Original Message-----
> > From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On
> > Behalf Of Andres Armengol
> > Sent: Friday, September 9, 2016 12:46 AM
> > To: wix-users at lists.wixtoolset.org
> > Subject: [wix-users] Bootstrapper not detecting already installed msi
> > package
> >
> > Hi everyone
> >
> > I'm trying out the wix tool set and working on a small sample that
> > includes bootstrapper bundle which installs the samplefirst msi from
> > tutorial.
> > On my development pc I have visual studio 2013 and the wix tools v3.10.
> >
> > The problem I have is that the bootstrapper does not detect that the
> > msi is already installed on the test system when I rebuild the
> > bootstrapper, even though I haven't done any changes in the source
> > code. This happens for instance when I check out the sources and build them.
> > Otherwise if I use the same bootstrapper without rebuilding it will
> > detect the product and show the options Repair / Uninstall.
> > If I try the msi, rebuilt or not, it always detects the product as
> > installed and it won't allow the installation.
> >
> > As the result when I reinstall the bootstrapper twice I get two
> > applications with the same name on the test system. I see the two
> > products installed in add/remove programs tool.
> >
> > Source code is attached.
> >
> > Has anyone an Idea what I can do to solve the problem?
> >
> > Best regards
> > Andi
> >
> >
> > ____________________________________________________________________
> > 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/
> 
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
 		 	   		  


More information about the wix-users mailing list