cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Kevin_Hodgson
Level 5

Having problem with Basic MSI Major Upgrade.

I'm having a problem with a Major Upgrade of one of my products.

Minor Upgrades however are working fine.
Whenever I attempt to do a major upgrade, I get the error informing me that a newer version of the application is already installed and it needs to be uninstalled first.

I have two UpgradeItems in my newer version's release.
ISPreventDowngrade
Products sharing my Upgrade Code
Any Earlier Version
Detect Only set to YES
DetectProperty: ISFOUNDNEWERPRODUCTVERSION (exists as a SecureProperty)

ISUpgrade2009
Products sharing my Upgrade Code
Any Earlier Version
Detect Only: NO
DetectProperty: ISUPGRAEDABLE2009 (Exists as a secure property)
Migrate Feature State: Yes

There is a Type 19 Custom Action ISPreventDowngrade in Installation UI and Execute Sequences following the FindRelatedProducts custom action.

The Upgrade Code is the same between the previous version and current version. Product Code's are different.
Prior Version number was 2008.50.xxx
Current Version number is 2009.00.xxx

Any help is appreciated.
Labels (1)
0 Kudos
(4) Replies
RobertDickau
Flexera Alumni

The ISPreventDowngrade item shouldn't be set to "Any previous version", but instead should be "Within a specific range" starting with the current version.

In general, you can also create an MSI log file and search around the FindRelatedProducts and ISSetAllUsers actions for information about what MSI has found...

(I don't know if it matters, but according to the "ProductVersion Property" help topic, the first two fields of ProductVersion should be 255 or under...)
0 Kudos
Kevin_Hodgson
Level 5

RobertDickau wrote:
The ISPreventDowngrade item shouldn't be set to "Any previous version", but instead should be "Within a specific range" starting with the current version.

In general, you can also create an MSI log file and search around the FindRelatedProducts and ISSetAllUsers actions for information about what MSI has found...

(I don't know if it matters, but according to the "ProductVersion Property" help topic, the first two fields of ProductVersion should be 255 or under...)


Thanks Robert, my messed up ISPreventDowngrade item seems to have turned the trick.

Is there a placeholder to cause it to insert the current version at build time? We do our builds automatically via scripts, and we set the version number from the standalone builder command line.

The Version number doesn't seem to cause a problem for MSI installers, it badly breaks Installscript installers however. The internal VerProductCompareVersion functon in InstallScript requires a packed DWORD (255.255.65535) or it fails completely. InstallationInfo will also write 0.0.0 as the version number in the registry if you have have a value greater than 255 for the major or minor version. This understandably breaks the default Upgrade and Maintenance handling of Installscript installs.
0 Kudos
RobertDickau
Flexera Alumni

If you look in the Minimum Version property in the Advanced settings for ISPreventDowngrade, you'll see "***ALL_VERSIONS***"; this magic value keeps the minimum synchronized with ProductVersion.
0 Kudos
Kevin_Hodgson
Level 5

RobertDickau wrote:
If you look in the Minimum Version property in the Advanced settings for ISPreventDowngrade, you'll see "***ALL_VERSIONS***"; this magic value keeps the minimum synchronized with ProductVersion.


Perfect. Thank you.
0 Kudos