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

Sean Hall r.sean.hall at gmail.com
Wed May 26 10:51:21 PDT 2021


>  In the planning phase, both "fresh install" and MajorUpgrade packages
are planned with "Rollback:Uninstall" (regardless of dependencies)

If there are dependents, the rollback action should None. Please file a bug
with a log file and information about how to reproduce this scenario.
Ideally the repro would be adding a failing test to
https://github.com/wixtoolset/wix4/tree/develop/src/test/burn/WixToolsetTest.BurnE2E
.

> I do not see a way to get the desired/expected behaviour (as stated above)

In theory, you could use the MSI transaction feature that Nir Bar
contributed to v4. in practice, it's not clear how reliable that is because
in terms of Windows Installer it's a new feature and has undocumented
restrictions like the x86/x64 Nir mentioned as well as how it handles
packages that need to restart.

https://github.com/wixtoolset/issues/issues/3421 is about getting Burn to
be able to use the previous bundle to get the packages back to the correct
state.

On Wed, May 26, 2021 at 12:13 PM Matthias Reuss via wix-users <
wix-users at lists.wixtoolset.org> wrote:

> Hi,
>
> 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