[wix-users] WiX Bundle upgrade or install new to run side by side

Hoover, Jacob Jacob.Hoover at greenheck.com
Tue Jan 31 14:43:57 PST 2017


1.A/2.A this should happen automatically.
1.B I would use a semi-custom action to schedule the copyfile from the previous install (Ref https://www.joyofsetup.com/2007/07/01/semi-custom-actions/ )
1.C/2.B
  Capture the intel of related bundles from OnDetectRelatedBundle (Your bundles Should have RelatedBundle elements for prior bundles with either a detect or upgrade action on them)
  Based on the user selection in your BA, respond appropriately in OnPlanRelatedBundle. 

Not 100% certain on this but it would seem logical that you could set it to by default always remove the older bundles via Upgrade, and then override this when you want them to stay via OnPlanRelatedBundle.

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Harinatha Narisetty
Sent: Tuesday, January 31, 2017 4:33 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] WiX Bundle upgrade or install new to run side by side

Ok. I changed to have Unique Install folder for each version.
C:\Program files\Company\Product1.0.0
C:\Program files\Company\Product1.1.0
C:\Program files\Company\Product2.0.0
C:\Program files\Company\Product3.0.0

I do see the bundle detect events getting fired. Now how to 

1. When earlier version is found. User selection is "Upgrade"
	A. Install this version
      B. Copy the config files from previous version to this version folder
	c. Remove Previous Version
2. When earlier version is found. User selection is "Side by Side"
	A. Install this version
      B. Do not remove previous version

Can you help me with this?

Thanks
Hari

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Hoover, Jacob
Sent: Tuesday, January 31, 2017 5:11 PM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] WiX Bundle upgrade or install new to run side by side

I don't think you can achieve this with a single MSI, in the manner your describing.  I think the most robust solution would be to have a unique install folder and upgrade code for each upgrade you release(you can still service each upgrade with patches).  Then your problem becomes, if I detect an older version, do I want to merge the configuration from it, as well should I uninstall the old version after upgrading.

The first problem could be solved via a property driven CA in the MSI (assuming the bundle is detecting the old version and allowing the user to choose between a clean install and an upgrade), where you pass the user choice from the BA to the MSI via a Variable and a MsiProperty.

The second problem can be solved again with the bundle detecting and optionally prompting for removal of the old version, in which you want to look at the RelatedBundle* callbacks and element.  This will allow you to relate your newer bundles with all of the prior bundles, and use the callbacks to determine if you only want to detect the related bundle or have it plan to remove it.

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Harinatha Narisetty
Sent: Tuesday, January 31, 2017 3:55 PM
To: wix-users at lists.wixtoolset.org
Subject: [wix-users] WiX Bundle upgrade or install new to run side by side

Hi,
I have a wix bundle with custom bootstrapper (and several screens) that installs a MSI package. For upgrades, I want to provide an option for user to choose either update the existing version (merge config files) or install as new version. I am not sure how to achieve this. Here are my bundle and prouct wxs files.


Bundle Name='My company software $(var.ShortVersionNumber)'
      Manufacturer='my company(r)'
      Version='$(var.FullVersionNumber)'
      UpgradeCode='D414EA8E-A3BF-44E1-B362-91E34074B55B'
      Compressed='yes'
      Copyright='(c) 2015 mycomapny(r) - All rights reserved'
      AboutUrl='http://www.mycompany.com'
      HelpUrl='http://www.mycompany.com/support'
      IconSourceFile='..\..\abc.ico'
      SplashScreenSourceFile='Splash.bmp'>

all other nodes...
<MsiPackage Id='application' SourceFile='..\Output\en-us\Client.msi'
              DisplayInternalUI='no' Visible='no' Permanent='no' Compressed='yes' Vital='yes'>




The Product.wxs file is

<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' ....           >

  <Product Id='*'

       Name='My Company software $(var.ShortVersionNumber)'

       Manufacturer='MyCompany(r)'

       Version='$(var.FullVersionNumber)'

       Language='1033'

       Codepage='65000'

       UpgradeCode='0D126835-8687-4A37-ADB1-EAF28724FFE4'>



I have all the events subscribed in my c# code.

Please give me some direction on how to achieve this.



Thanks
Hari

____________________________________________________________________
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