|
This post has NOT been accepted by the mailing list yet.
We have a bootstrapper bundle which chains 3 individual application msi. Bootstrapper custom UI allows user to choose which application to install
And based on the selection custom bootstrapper will install its msi.
Now consider the scenario.
Application, say A1 version 1.0.0.50 is installed in the system. Assume bootstrapper version is also 1.0.0.50
Assume next version of bootstrapper installer with some updates is available, Assume its version is 1.0.0.51.
Using this newer version I am able to upgrade A1.
But it's failing with another usecase. We have a requirement that we should be able to just uninstall A1 usiing the newer version of installer 1.0.0.51
But in this case Bootstrapper Engine is not detecting msi package current state as Present
Here is the excerpt from log
Detected related package: {92482FD1-38EE-474E-B4C0-32C8FBDF9C0B}, scope: PerMachine, version: 1.1.0.329, language: 0 operation: MajorUpgrade
[29F0:04E0][2016-08-26T10:50:11]i000: In OnDetectRelatedMsiPackage event parameterss are : CCAdmin and result is None
Planned package: CCAdmin, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
So when I call Engine.Apply, it does not uninstall the msi. I could see ApplyBegin and Apply complete event handler methods are invoke. But not ExecutePackageBegin, ExecutePackageInprogress etc..
Is there a way can I override msi package currennt state as Present and Request state as absent so that Engine will set execute action as Uninstall
I tried setting the in memory package state as Present and Requeste state as absent. But still in the logs I can see State: Absent and Execute: None.
Also let me know is there a way to uninstall msi using a different version of its installer(custom bootstrapper)
|