I have one package and one bundle, which installs/repairs/modifies/uninstalls that package. The bundle features a managed bootstrapper application. The framework is WIX 3.11.
The package supports major upgrade.
<MajorUpgrade AllowSameVersionUpgrades="yes" AllowDowngrades="no" DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
The bundle also handles major upgrade.
I found out, that on major upgrade the older package gets uninstalled by the newer package - but without supervision of the older BA. The older BA is also running, but does not perform the uninstall of its older package.
My problem is: the BA sets some variables on uninstall. These are not forwarded to the package in case of major upgrade. (When uninstalling via ARP then the BA rules the uninstall of its package and certain properties have correct values provided by BA.)
So the question is: how can older BA uninstall its own older package during execution of major upgrade.
Note: In case of major upgrade I have only 3 log files. One for the newer BA. Another one for the newer package - which includes the uninstall log of the older package. And one log of the older BA which tells something about related bundles and related packages, but does not apply the uninstall of its package.
Don't use MajorUpgrade. Your requirement is a little strange, but if the new MSI package doesn't upgrade the old MSI package during the installation of the new MSI, then the old Bundle will uninstall the old MSI package during its uninstall.