Bootstrapper bundle upgrade not upgrading exe packages

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Bootstrapper bundle upgrade not upgrading exe packages

EricO
This post has NOT been accepted by the mailing list yet.

0
down vote
favorite
I'm working on a WiX bootstrapper/bundle installer which installs a MSI package and a few .exe packages. The bundle installer will need to be able to upgrade its components when a new bundle is installed. Initially I faced an issue where my ExePackage components were being un-installed on upgrade, and then I learned that you can avoid that by putting a dep:Provides entry in the ExePackage elements. That fixed the un-install upgrade issue, but now I'm seeing an issue where the ExePackage components are not being upgraded with a newer bundle installer.

I've tested this by creating 2 versions of my bundle installer - One with a newer version of one of the ExePackage components. If I install the lower-version bundle, then install the newer-version bundle, it appears that nothing gets upgraded - The one ExePackage component it's supposed to upgrade is still the older version. The registry entry created by the dep:Provides element gets updated with the new version though. Then, when I un-install the bundle, everything gets removed except for the ExePackage component that it was supposed to upgrade.

It seems there is a lack of documentation or examples for this scenario and others with WiX. Does anyone have an example for this scenario?

One of my ExePackage elements looks similar to this:

<ExePackage Id="BLAH_INSTALLER"
              SourceFile="$(var.SolutionDir)\InputBin\BlahSetup.exe"
              Compressed="yes"
              InstallCommand="/install /quiet"
              UninstallCommand="/uninstall /quiet"
              DetectCondition="BlahPresent"
              Cache="always" >
    <dep:Provides Key="Blah" Version="5.0.0.0" />
</ExePackage>

My DetectCondition logic is a FileSearch which looks similar to this:

<util:FileSearch
  Id="Blah_Installed"
  Path="[ProgramFiles64Folder]\blah\blah.exe"
  Variable="BlahPresent"
  Result="version" />
Loading...