I have set the upgrade code to 2 versions of a product correctly. Still I am getting two versions of the same product installed in a single machine. What could be the reason? when I checked in event viewer, I saw that previous version got installed when later version was already present on the machine. Old version should not get installed when a newer version of the product is already present. It should just say "A newer version of this product is present on the machine" and quit the installation.

0 Comments   [ - ] Hide Comments


Please log in to comment

Answer this question or Comment on this question for clarity



When you upgrade any application, you need to take care of these things:

1) Change the product code of the application

2) change the package code of the application

3) Create an entry in Upgrade table for the previous application so that it can be uninstalled.


Apart from these 3 basic steps, you can move the RemoveExistingProducts (REP) action in the InstallExecuteSequence table to before InstallInitialize or after InstallFinalize action. Move it after InstallFinalize if your component GUID's are synced.


Hope it helps you solve the issue.

I think you have not created an Upgrade table entry.

Answered 08/08/2012 by: piyushnasa
Red Belt

Please log in to comment

Depends on the code, what program is this? I have seen Java, Aleks, Keyboarding Pro, Autocad, Microsoft and Adobe products do the same thing.  So products allow other versions to co-exist

Answered 08/07/2012 by: SMal.tmcc
Red Belt

  • It's an inhouse tool.. I need to upgrade the program. Different versions should not co exist
  • when you install the old version on a machine manually that has a newer version does it do it or complain?
Please log in to comment

Is FindReleatedProducts standard action exist in you msi

The FindRelatedProducts action runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable.

The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation.

FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelated Products from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action.

Answered 08/07/2012 by: jagadeish
Red Belt

  • How did you configure upgrade table entry?
  • Are they delivering files to it's own INSTALLDIR?
  • Have you tried UpgradeSyn? Is your msi delivering only unversioned files?
  • What does your log file says when its execute FindRelatedProducts action?
  • Are you able to lauch both version's shortcuts successfully?
Please log in to comment