Level 7

After Major Upgrade, Multiple Entries in Add/Remove Programs

I performed a Major Upgrade to a previous version of our product. It apparently worked (old files removed, new files installed), but when I look in the Add/Remove Programs there are two entries for the product, the old and the new. How can I have just one entry in Add/Remove Programs, the one for the latest version?

This is the procedure I followed:
Old version, InstallScript MSI, created with InstallShield 2008.
New version, InstallScript MSI, created with InstallShield 2009.
1. Changed Product version from to
2. Changed the Package Code
3. Changed the Product Code (as req'd for Major Upgrade)
4. Added an Automatic Upgrade, pointing to setup.exe for old version
5. Compiled (Validation Succeeded; said it would perform a Major Upgrade)

Could I solve this by converting the Automatic Upgrade to a Major Upgrade? I don't want the customer to see multiple entries in the Add/Remove Programs dialog.

Thanks for any suggestions.
Labels (1)
0 Kudos
3 Replies
Level 7

Even after converting from an Automatic Upgrade to a Major Upgrade, the results are unchanged -- still works, but still have multiple entries in the Add/Remove Programs dialog!! Help!
0 Kudos
Level 7

I always preferred the 'major upgrade' to the 'automatic'.

The validation makes sure that the necessary changes to the package being built have been made to qualify as a major upgrade ... this does not necessarily mean that any given 'previous package' will be successfully removed.

The double entry is likely due to not correctly identifying the GUID of the installed package, the package needing to be uninstalled.

I would suggest these steps:
  • Locate the Upgrade Code from the MSI of the older package (in the Property table) and verify that this same code appears in the Common tab of your major upgrade item, in the Products having another Upgrade Code field.
  • To aid in trouble shooting, do not be too constrictive when defining the Product Version ... as a test, consider removing any version values and simply use the Any earlier version.
  • Looking at the properties of the release being used to build the package, browse to and select the MSI of the older version in the Previous Package property.
  • 0 Kudos
    Level 4

    Hello Shuttledude,

    Please make sure that upgrade code of Old version and New version is same. That could be the reason it's not able to find the related product depending upon the upgrade code of the latest version.

    If still does not work, please check out for msi log created by the setup in %windir%. You can look out for entry of ISSetAllUsers custom action. This action will se IS_MAJOR_UPGRADE property to "Yes".

    0 Kudos