View Full Version : Major Upgrade Doesn't Remove Previous Version

08-12-2005, 02:21 PM
I have created a Windows MSI install. I want it to remove all previous versions of our product before installing this current version. This is considered a major upgrade. I have the previous version upgrade codes. I have created a new package code and a new product code in the new version install. I have created a major upgrade item in the upgrade scenarios and have indicated that it should remove all previous installs with the same upgrade code.

I run the install and no previous versions are uninstalled. Any idea why?

I'm using Installshield 11 and have all the latest hot fixes etc... I am expecting that this functionality should be fairly straight-forward and that I should NOT have to create scripts and custom actions just to remove previous installs.

The previous install was done in Installshield Express 3.5. :mad:

08-12-2005, 03:10 PM
To begin, you'll want to create an MSI log file while deploying your major upgrade (msiexec /i product.msi /L*v everything.log) and looking for the ISSetAllUsers and FindRelatedProducts actions to see why MSI is or is not detecting the earlier version...

08-12-2005, 04:38 PM

I am having the same problem. I originally tried to do this as a minor upgrade but because I have many, many dynamically subfolders, I was unsuccessful with that, obviously, so I switched the whole thing to a major upgrade. Everything was working pretty well, but when I uninstalled my upgrade, lots and lots of files were left behind. I thought this might be another symptom of the "dynamically linked subfolders," so I painstakingly created components for all the subfolders and created new dynamic links. Now, my setup doesn't do anything at all!

What should I be looking for in the log file? Right now, I have a couple of entries that say "Skipping action: ISSetAllUsers (condition is false)" and "Skipping FindRelatedProducts action: not run in maintenance mode." Are these the problem? And if so, how do I fix them?

08-12-2005, 04:48 PM
Hmmm... Just a sanity check: did you change the ProductCode value between the two versions?

08-12-2005, 05:29 PM
No. Is that my problem? What if I want the product code to be the same? Remember, this was really supposed to be a minor upgrade, but I couldn't use that because of the dynamically linked subfolders.

08-12-2005, 05:41 PM
Right, to use a major upgrade (and get the uninstall-then-reinstall) you have to change the ProductCode.

08-15-2005, 08:44 AM
Ran the msiexec with the parameters as you described. I've attached the log file for review.

The upgrade code is {4F449CC5-1EDD-11D5-8FEF-00D059230732}

The new product code is {C2D4568D-23E9-49B0-B350-41047C5C075A}
The new package code is {3AD405D6-CD15-4BD0-B2EA-2AF1AA15D6C0}

The product code and the package code were auto-generated.

Stefan Krueger
08-15-2005, 11:15 AM
The upgrade code is {4F449CC5-1EDD-11D5-8FEF-00D059230732}
For both the old and the new version? (must be same)
What seetings did you specify in the Upgrades view? ("any version matching my upgrade code"?)
Did you perform a Upgrade Validation?

08-15-2005, 12:00 PM
Same upgrade code for both products.

Created new upgrade item and indicated it should upgrade all versions.

Stefan Krueger
08-15-2005, 01:25 PM
Upgrade validation result?

08-15-2005, 01:48 PM
See attached.

I have two entries in the Remove table to remove previous shortcuts in the programs menu and the desktop.

08-16-2005, 12:29 AM

Add the Action property created in the Upgarde Table with the "SecureCustomProperties " in your property table.Then it will work fine ..

08-16-2005, 07:56 AM
Action property name from the Upgrade table is already in the Property table under SecureCustomProperties....

08-16-2005, 08:52 AM

What is the value of the Attributes Field in your Upgarde table. For me the sample upgrade works well with value(772) in the Attributes field.

08-16-2005, 09:05 AM
I currently have 256 as the value.

In the documentation, the only valid values for this field are:

1 - msidbUpgradeAttributesMigrateFeatures
2 - msidbUpgradeAttributesOnlyDetect
4 - msidbUpgradeAttributesIgnoreRemoveFailure
256 - msidbUpgradeAttributesVersionMinInclusive
512 - msidbUpgradeAttributesVersionMaxInclusive
1024 - msidbUpgradeAttributesLanguagesExclusive

I'm not sure if combinations of these are possible. However, the value in this field is auto-entered from the interface of the Upgrade Item. I've checked the radio button 'Any Earlier Version'.

My Upgrades table reads as follows:

UpgradeCode - {4F449CC5-1EDD-11D5-8FEF-00D059230732}
VersionMax - ***ALL_VERSIONS***
Attributes - 256
ActionProperty - ISACTIONPROP2
ISDisplayName - NewUpgradeEntry1

Stefan Krueger
08-16-2005, 04:42 PM
Are you seeing this in Direct Editor? Or in the built .msi file?

VersionMax - ***ALL_VERSIONS***
This doesn't look right. There should be a version number, not a string. And the version number should less (or equal) than your latest version, so that it will uninstall only older versions.
Also VersionMin appears to be missing.

08-17-2005, 07:52 AM
This string is being viewed in the Direct Editor. It is auto-entered from the upgrade interface when I choose the radio button that says 'Any Earlier Version'.

Frustrating, isn't it!?

08-17-2005, 08:18 AM
Type the min ver as 0.00 and max version as ur products max version.Type 772 in Attribute field and view the changes in ur Upgrade records.

08-17-2005, 09:10 AM
That didn't work. Sorry...

08-31-2005, 09:06 AM
Could you explain to me why a dynamically linked subfolder inhibits minor upgrades, please?

08-31-2005, 09:07 AM
sorry, wrong thread....