[wix-users] Bundle Rollback with Major Upgrade of packages

Rob Mensching rob at firegiant.com
Wed May 26 11:55:03 PDT 2021

Outside of multi-package MSI transactions*, repair of the old bundle is expected to fix things up. The PackageCache should have everything needed so no source prompts are needed (unless you explicitly chose to not cache your bundle's packages).

* Historical note: Way back when Burn was being developed, teams at Microsoft that tried to use MSI transactions were finding *lots* of bugs. That massively reduced confidence in the feature and pushed it out of Burn v3. It never became a high priority to verify if the MSI transactions feature eventually worked.

-----Original Message-----
From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of Matthias Reuss via wix-users
Sent: Wednesday, May 26, 2021 10:14 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Cc: Matthias Reuss <matthias.mr.reuss at wsa.com>
Subject: [wix-users] Bundle Rollback with Major Upgrade of packages


I do not see a consistent way to handle the case that an MSI package within a bundle rolls back. I am not talking about the package that experiences an error and is rolled back by Windows Installer, but about the packages installed before that.

My expected outcome (others may have other expectations...):
On fresh installation: Non-shared MsiPackages are removed, shared packages (at least packages for which Burn has detected another dependency) are either set back to their previous state (I know that Burn cannot accomplish that...) or kept in their updated version.
On upgrade of the bundle: All previous MsiPackages are either set back to their previous state (with objection as above) or kept in their updated version.

What I observe:

In the planning phase, both "fresh install" and MajorUpgrade packages are planned with "Rollback:Uninstall" (regardless of dependencies). MinorUpgrade packages are planned with Rollback:None. This planning is then executed regardless of any dependencies (even though Burn detected the dependencies in the Detect phase).

This means in practice that every MsiPackage that was installed with another bundle (shared) or with an older version of the same bundle and now gets rolled back because of a failure in a later package is removed if the ProductCode changed with respect to the previous installed version, thus leaving the system in a real mess. Of course, repair of the other bundle(s) may help if sources are available, but...

RollbackBoundaries are not a real help either, because they also prevent the rollback of a fresh installation. I do not see a way to get the desired/expected behaviour (as stated above), not even with the CustomBA.

Am I missing something here?

Best regards

Matthias Reuss

WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/

More information about the wix-users mailing list