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

Minor and Major upgrade not working as expected..

Hi

We are trying to create an upgrade for a product, whose original installs were created using installshield version 2008. We are still using IS 2008.

Few details about the original install


  • Has multiple features
  • Includes multiple merge modules (some our own and some third party like Microsoft VS binaries)
  • Original install version number is 5.0.0.1
  • Some of the components in the install are linked dynamically


Changes since the original version

  • No new features
  • No new components
  • Third party redistributables (MS VC binaries have been updatd to SP1)
  • Several files were updated in their existing location
  • Contents of some of the dynamically linked folders changed (new files added etc)
  • The installs were updated to pick the files from a new location (files are the same, just their source location is different)


First we tried to create a minor upgrade, since the changes above does not seem to mandate a major upgrade.

So changed the product version to 5.0.1. The package code is set to "Generate with each build", so it shall be different. The PRODUCT GUID was NOT CHANGED.

When we run this setup over the existing installation, we get a prompt saying "Setup shall upgrade the product", which is fine. Now after the upgrade is complete, NOT ALL files are updated to the latest version. From what we could gather components associated with SOME FEATURES are not getting updated. We are not sure if its related to the changes in the dynamically linked folders. We made sure that none of the component IDs or KEY files changed between these two versions.

So then we tried a MAJOR UPGRADE, by making the following changes.

  • In addition to the version change, we also changed the PRODUCT GUID.
  • The UPGRADE CODE WAS KEPT THE SAME.
  • A new MAJOR UPGRADE item was added under the upgrades view.


When running the major upgrade we get the error saying "A newer version of the application is already installed in this computer". Some relevant information from the log file is as follows

[CODE]InstallShield 11:27:11: Begin SetAllUsers()
InstallShield 11:27:11: Getting records from Upgrade table
InstallShield 11:27:11: UpgradeCode: {0D4F03FA-666C-47A7-B9D6-9997A4F62BFD} MinVersion: MaxVersion: 5.0.1.0 Language: Attributes: 257
InstallShield 11:27:11: Checking related product {F5487916-7714-4696-85AA-9C2D3C6253B0}
InstallShield 11:27:11: ABC Product {F5487916-7714-4696-85AA-9C2D3C6253B0} 1033 5.0.0.1 ***Related***
InstallShield 11:27:11: ALLUSERS of related product {F5487916-7714-4696-85AA-9C2D3C6253B0} is = 1
InstallShield 11:27:11: End SetAllUsers()

Action 11:27:11: FindRelatedProducts. Searching for related applications
Action start 11:27:11: FindRelatedProducts.
FindRelatedProducts: Found application: {F5487916-7714-4696-85AA-9C2D3C6253B0}
FindRelatedProducts: Found application: {F5487916-7714-4696-85AA-9C2D3C6253B0}
Action ended 11:27:11: FindRelatedProducts. Return value 1.
Action 11:27:11: ISPreventDowngrade.
Action start 11:27:11: ISPreventDowngrade.
A newer version of this application is already installed on this computer. If you wish to install this version, please uninstall the newer version first. Click OK to exit the wizard.
MSI (c) (60:9C) [11:27:14:780]: Product: ABC Product -- A newer version of this application is already installed on this computer. If you wish to install this version, please uninstall the newer version first. Click OK to exit the wizard.

Action ended 11:27:14: ISPreventDowngrade. Return value 3.[/CODE]

The product code of version 5.0.0.1 is F5487916-7714-4696-85AA-9C2D3C6253B0
Upgrade code of both versions is 0D4F03FA-666C-47A7-B9D6-9997A4F62BFD

Now we are not able to figure out why its detecting the existing install as a "newer version", when the version number for that is 5.0.0.1 and the new one is 5.0.1.0

Any help appreciated

Sincerely
Praveen
Labels (1)
0 Kudos
(4) Replies
firmusoft
Level 5

All:

The issue with major upgrade failing with error "a newer version was found", got resolved when I changed the settings of the ISPreventDowngrade item in the upgrade table. On the common tab, under 'Product Version', the default selection was 'any earlier version', which i changed to 'with in a specific range of versions' and for Minimum version, I put the current install version which is 5.0.1. Left the Max version box blank and also did not check the Version range inclusive checkbox. With that setting, I am not getting the error and the install runs through fine. from the log, it seems like the IsPreventUpgrade action is being skipped here, which is fine with me at the moment.

But i ran into another problem during major upgrade. The uninstall phase seems to go thru fine, but during the installation phase NOT ALL files that are included in one of the merge modules are getting copied. I am still looking into this.

Just going back to why NOT ALL THE COMPONENTS were getting updated during a MINOR upgrade, here is a comparison between by original version and the new. Can someone point out what might be causing the minor upgrade, not to work as expected.

Differences
1. New setup picks the files from a different location. The original install picked the files from release folders of projects etc., but to maintain a history of released files etc., the new install was updated to pick the files from a common folder. This only changes entries in the ISPathVariable table and the ISBuildSourcePath field in the File table.
2. Version number and Package code are different. Package code was NOT CHANGED under General Information | Summary Info Stream, but in Release config, the "Generate Package code" is set to Yes. Version number was updated (frm 5.0.0 to 5.0.1) under both General Info | Product Props and Release configuration.
3. Microsoft MMs (ATL, MFC, CRT) were updated to the latest
4. Contents of dynamically linked folders might have changed (files deleted, renamed or added)

Remained the same
1. Product Code and Upgrade Code
2. *Component IDs
3. No changes in features or components.

*Regarding component IDs, none of the IDs in the ISM file have changed. Are there any component IDs that are generated dynamically by install build process? Also i am not sure if the component IDS in the Microsoft redistributables have changed between versions.

Looking forward to your thoughts..
0 Kudos
TsungH
Level 12

There will be a problem for minor upgrade with #4 if those files are component keyfile, e.g., exe, dll, ocx, chm, hlp. You may find this thread useful.
firmusoft wrote:
Differences
4. Contents of dynamically linked folders might have changed (files deleted, renamed or added)
0 Kudos
firmusoft
Level 5

TsungH wrote:
There will be a problem for minor upgrade with #4 if those files are component keyfile, e.g., exe, dll, ocx, chm, hlp. You may find this thread useful.


Thanks for the response, Tsung...

In the log file, there is an entry

MSI (c) (60:58) [08:50:08:499]: SELMGR: ComponentId '{A75F2217-AD54-3EA6-AE14-F255F8660531}' is registered to feature 'Core', but is not present in the Component table. Removal of components from a feature is not supported!


Does this mean that the components associated with the "Core" feature shall not be updated during a minor upgrade. If that is the case, then it makes sense.

A75F2217-AD54-3EA6-AE14-F255F8660531 is the component ID of the atl90.dll (in MS merge module). With the latest setup, we are including updated MMs from MS.

So as i understand, the possibility of MINOR UPGRADE in this case can then be ruled out.
0 Kudos
TsungH
Level 12

Yes, that's correct.
0 Kudos