Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 2

Chained Packages and Maintenance mode

Is there any way to execute a chained MSI package in maintenance mode?

I have an Installscript MSI Project with a chained Basic MSI Project.

When a user wants to modify the installed application some features in the chained package may need to be removed, others installed. The overall project works correctly when performing initial install or when performing uninstall, but when trying to execute Maintenance the following occurs:
First the user is asked if they want to remove the product, answer NO. Then the "Finish" dialog pops up. A few seconds after clicking "Finish" the installer restarts with the Maintenance screen. After the user makes the desired selections (through a custom dialog and script) the appropriate features in the main package are removed/installed. The chained package is not executed. The log says it is not executed because it is already installed. The install conditions for the chained package are:
REMOVE<>"ALL", the uninstall conditions are the default REMOVE="ALL".
The install properties are ARPSYSTEMCOMPONENT=1. There are no feature selections in the properties as these are variable (any clues how to handle that would be appreciated if it might help resolve the problem).

I see there is no "Enable Maintenance" flag for Basic MSI projects. Is there another type of project that allows scripting that can be used as a chained package?

So there are two issues:
1) The undesired "Remove all" query before exectuing Maintenance.
2) Failure to execute the chained package in Maintenance mode.

Any help would be greatly appreciated!
Labels (1)
0 Kudos
(2) Replies
Level 12 Flexeran
Level 12 Flexeran

There is an advanced flag known as ecoReinstallInstalled (value 16) that changes the behavior when the package is already installed; working with this may let you continue, but be careful to handle all the scenarios (from matching versions to minor upgrades, etc.) that you may encounter in the future.

I'm a little unclear which removal query dialog you're talking about, or why it would show up. The one that comes to mind is shown by the ARP, but that's not involved with any chained packages. Any other dialogs from a chained package should be suppressed in a /qb or /qn style install.
0 Kudos
Level 6

Michael, I tried setting that option in the ISChainPackage table that you have referred to but I am as of yet unable to to trigger the chained msi in maintenance or repair mode. I desperately need to be able to repair the chained msi when it is invoked in the parent one. What else do I need to do to make this work correctly?
0 Kudos