Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 6

Upgrade Install setup - what am I missing here?

Installshield 2012 Spring SP1
Testing on Windows 7 64 bit

I have used Installshield for years and have always done Minor Upgrades with few problems. I'm trying to prepare my first Major Upgrade.

I changed the Product Code
I changed the Product Version
In the Upgrade View, I created a Major Upgrade item
The following boxes are ticked on the item

Common Tab:
Major Upgrade: Products sharing my Upgrade Code
Product Version: Any earlier version

Advanced Tab:
Upgrade Code: {00000000-0000-0000-0000-000000000000} (my understanding is that this is replaced with the product upgrade code at run time)
Minimum Version:
Include Minimum Version: Yes
Maximum Version: ***ALL_VERSIONS***
Include Maximum Version: No

Detect Only: No
... the rest probably doesn't matter.

In the Upgrade Windows Installer Setup Advanced settings
On Upgrade: Prompt
Style: Complete Uninstall Then Reinstall

This is all correct as I understand it. However, if I run a Build to get the installer and then do a test upgrade install from a previous version, I never get an upgrade prompt and it acts like it is a New install, (never identifies itself as an upgrade, prompts for InstallDir etc.)
If I let the upgrade install complete, there is a single entry in the Programs and Features control.

I checked the existing installation and it is using the same Upgrade Code as the new release.

Am I doing anything obviously wrong here?
What can I look for that will give me a clue as to why this is not working?

Labels (1)
0 Kudos
(5) Replies
Level 7

I am not familiar with this upgrade view. I always populate the upgrade table directly to configure a major or minor update. So I would recommend to have a look into the upgrade table, maybe you can find the error there.
You can also post your entries in the upgrade table, maybe I can find something in it.

0 Kudos
Level 6

Thanks for the response Barbara.

The Upgrade table looks like this:
Column .............. Value
UpgradeCode ..... {AE874D6A-C35C-4FEC-AB49-23A2C4B35403}
VersionMin ........ 4.0.00000
VersionMax ....... 5.0.00000
Attributes ......... 257
ActionProperty ... ISACTIONPROP1

Attributes value 257 translates to; detect range versions including VersionMin (256) + migrate feature states (1)

I ran the upgrade with logging (/lvx*) and it looks like it is doing upgrade actions. I see an entry:
RemoveExistingProducts: Application: {old productcode}, Command line: UPGRADINGPRODUCTCODE={new productode} CLIENTUILEVEL=0 REMOVE=ALL

I expect that the install would prompt for an upgrade but it does not. I may be wrong here.

After the "upgrade"

  • I find files that should have been removed in the uninstall, still remain
  • The registry HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{productcode} entry is updated to reflect the new product code and product version.
  • if I try to uninstall the product, it leaves all files and shortcuts on the machine and removes the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{productcode} entry.

0 Kudos
Level 7


I think it could be the value of the attributes field. I normally use the value 1025 to detect an upgrade.
The other things to check: Change productcode and productversion of the new setup, leave the upgradecode the same. Check the versionmax field in the upgrade table.
I use the follwing entry to make an upgrade of an old version and older with an newer version 8.4x.xxxx
Column Value
UpgradeCode {UpgradeCode}
VersionMin empty
VersionMax 8.39.9999
Language empty
Attributes 1025
Remove empty
ActionProperty OLDPRODUCTS

The Property OLDPRODUCTS which in your installation is the property ISACTIONPROP1 is entered in the SecureActionProperties in the Property View.

If you look into your MSI-Log: Is the property IS_MAJOR_UPGRADE set?

I hope this helps

0 Kudos
Level 6

Thanks Barbara for sticking with me on this. I think, with your help, I have it sorted.

There was a bit of confusion on my part.

I wasn't seeing the old files removed on the Uninstall part of the Install - The reason for this is that the component dll's are all marked shared. Somewhere along the way the install/uninstall got fudged on my test machine so that the reference counts did not decrement to 0 on uninstall. Hence the files were not deleted. I noticed this after doing a clean install/uninstall with an older version that I knew had no problems installing and uninstalling. It took me a while to figure out that the reference counts were the culprit (registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\SharedDLLs on a 64 bit machine in my test case).
Once I corrected this, both the Uninstall during the Major Upgrade and the Product Uninstall of the installed upgrade (from the Programs and Features control) worked as expected.

Another item was that I expected to see a warning prompt that an update was being performed. Apparently that doesn't happen automagically with a Major Upgrade. I had been used to seeing the warning for minor upgrades for so long I guess I expected it.

All seems to be working fine now. I tested the Major Upgrade scenario and went so far as to check a Minor Upgrade after the Major Upgrade.

Thanks for helping me work through this.

0 Kudos
Level 7

I am glad to here its working now. These *** shared counters costed me hours of searching also. In all of my setups I dont use them anymore. The confusing thing is, that if you add a new component, InstallShield automatically sets the shared value to yes and its not obvious, that they are more harming than usefull.
Best regards

0 Kudos