Prevent an Older Version from Installation
Prevent older version installation over newer version. As MSI Technology doesn't support this kind of check, we can provide it by doing a few steps in our packages to prevent installing an older version on top of a newer version.
Use the upgrade table "Action Property" to find a newer version installed.
In the Upgrade table add a row with:
- UpgradeCode - UpgradeCode value of the package.
- VersionMin - min version of your package.
- Attributes 258.
Where- 2 - Detect products and applications but do not install and
- 256 - The range of versions detected includes the value in VersionMin
- ActionProperty - NEW_VERSION_INSTALLED (user defined property name).
Use of Custom Action type 19 to terminate installation based on the "Action
Property".
Custom Action type 19 displays an error message, returns a failure and terminates the installation.
Add a new Custom Action type 19 - Terminate installation called CA_NEW_VERSION_INSTALLED to the InstallExecuteSequence under Immediate Execution mode. Add your comments for the Termination message as the Custom Action Target value;
Set this custom action to have a condition of DB_NEWERVERSION AND NOT Installed.



More information
Nice article,
I want to add some more information to this article.
Attribute 2 implies : Detects Products & applications but does not remove.
I will also suggest that keep Custom action 19 after FindRelatedProducts action in the Execute Sequence.
This procedure relies on the "FindRelatedProducts" action, which only runs during a first time installation & does not run in maintenance mode i.e reinstallation. Because minor upgrade are performed using reinstallation, this procedure cannot be used to determine whether a minor upgrade package is attempting to downgrade an application.
Anand V Herur
AVHerur
Would you like to reply?
Login or Register to post your comment.