[wix-users] "removed bundle dependency provider" - Why?

Reuss, Matthias matthias.mr.reuss at sivantos.com
Fri Apr 22 07:34:46 PDT 2016


I am using WiX 3.9R2 and do not use the Dependency Extension so far.

For one MsiPackage of my bundle, the uninstallation of that package is conditional (to provide compatibility with non-Burn installations of that package), i.e. my CustomBA may set PlanPackageBeginEventArgs.State to RequestState.None in the PlanPackageBegin event handler if some condition is true.

When I upgrade the bundle from say version 1.0 to 1.1 (with conditions such that uninstallation of that package suppressed), the following happens:

The 1.1 bootstrapper plans and applies the update installation for this package (in my case, it is a Minor Upgrade of the package) and registers a new dependency provider:
[0818:0648][2016-04-21T16:50:09]i325: Registering dependency: {b1629e31-c299-41c2-9d49-b1724ef900a2} on package provider: {MY_PRODUCT_GUID}, package: ConditionalPackage
This new dependency for this provider (just as those for the other packages) can as well be seen in the registry under HKCR\Installer\Dependencies.

After that, the old bundle is uninstalled.

Within the bundle uninstallation, the uninstallation of this package is correctly suppressed:

[0398:0B3C][2016-04-21T16:50:30]i201: Planned package: ConditionalPackage, state: Superseded, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister

For the other packages, custom BA does not suppress uninstallation, however they are not actually uninstalled because of the dependency on the new bundle:
[0398:0B3C][2016-04-21T16:50:30]i201: Planned package: OtherPackage, state: Superseded, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister

But then the uninstallation removes the whole dependency provider for this package, whereas for the other packages only the dependency on the old bundle version is removed:

[0660:090C][2016-04-21T16:50:30]i329: Removed package dependency provider: {MY_PRODUCT_GUID}, package: ConditionalPackage
[0660:090C][2016-04-21T16:50:30]i326: Removed dependency: {8ae4754a-c878-4054-9eea-c3b1e9d87f3c} on package provider: {OTHER_PRODUCT_GUID}, package OtherPackage

This removes the whole dependency registration for the "conditional" package, even though I have just reinstalled it with the new bundle version, and even if this package was registered as a dependency for other bundles.

Is this behaviour intended? If so, why?
Can I avoid this behaviour, so that the dependency provider for my "conditional" package remains intact on bundle upgrade, even if CustomBA suppresses uninstallation of that package?

Best regards

Matthias Reuss

More information about the wix-users mailing list