cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
AaronM
Level 6

Include/exclude major upgrade item based on product configuration

I have a single InstallShield project that contains multiple product configurations. They are related products in that some of them share common features, components, and custom actions directly instead of going through a merge module layer. Product flags are then used in conditions to include or exclude according to the product configuration being built.

This has been working well except one small issue. There is no way to include/exclude major upgrade items based on product configurations. As such, if two products from the same installer project are installed on the same computer then a major upgrade to one will also remove the other product even though they have different upgrade codes.

This could be resolved by having ability to include/exclude major upgrade items to specific product configurations at build time. Would this feature request be of value for others also?
Labels (1)
0 Kudos
(2) Replies
lasiewicz
Level 6

What you will have to is place conditions on the approprate actions. For example RemoveExistingProducts is the action which removes old installs based on the upgrade critera you selected in upgrades ( upgrade code , version etc). Placing a condition on this action will make it fire or not fire.
0 Kudos
AaronM
Level 6

Thanks for the suggestion.

Though I am not sure that will work in all cases. In particular, the scenario of a major upgrade of one of the products while another product(s) was also found. Still would want RemoveExistingProducts to execute in order to remove the currently updating product. RemoveExistingProducts action only runs once and not once for each product to uninstall, so I don't think that adding condition would help. (I could be wrong, but those are my initial thoughts).

Taking a step back, the MSDN documentation for RemoveExistingProducts action:
The RemoveExistingProducts action goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence by invoking concurrent installations.

That may be the answer. I could conditionally clear the respective property that should not be uninstalled after FindRelatedProducts but before RemoveExistingProducts.

All in all, I think it would be much preferred to have the ability at build time to include/exclude major upgrade items accordingly instead of these extra steps. Thoughts on this feature request? Or maybe it is rare to have related products within same installer project that ultimately need to be treated as unrelated?
0 Kudos