I have a small application I've packaged, with an upgrade code specified to upgrade an older package of the same software. The new package works great when it doesn't have to perform an upgrade, but when the old package is on the machine and an upgrade is performed, the resulting installation doesn't function. If the old package is removed through Add/Remove Programs before dropping the new installation, everything works fine.

I have tried moving the "RemoveExistingProducts" action in the MSI Script section to each of the locations that the Windows Installer SDK help said were allowable. Unfortunately, my results didn't change with these modifications.

I would greatly appreciate any suggestions that anyone has. Thanks!
0 Comments   [ - ] Hide Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
Answer this question or Comment on this question for clarity



Put the "RemoveExistingProducts" action in the 'Execute Immediate' sequence table between 'InstallValidate' and 'InstallInitialize'.

Let us know if it works successfully for you.

[8D] Keep cool. [8D]
Answered 01/31/2005 by: brenthunter2005
Fifth Degree Brown Belt

Please log in to comment
Brent, thanks for the suggestion. I did try it there, but unfortunately I had the same results.

I did forget to mention one thing originally. When the new package is dropped on top of an old install, it doesn't work. However, if I do a repair on that new installation, it resolves the issue and the app functions correctly. That makes me think that maybe a default value for an option that I'm missing is preventing the old install from being completely uninstalled or the new package from being applied correctly.

Ideas, anyone?
Answered 01/31/2005 by: MSIMonkey
Yellow Belt

Please log in to comment
It sounds like the new MSI package isn't running a complete uninstall of the old package. Double check your attribute setting in the Upgrade table.

For testing, ensure that you don't include msidbUpgradeAttributesMigrateFeatures or msidbUpgradeAttributesIgnoreRemoveFailure.

from the Windows Installer SDK Documentation:

msidbUpgradeAttributesMigrateFeatures 0x001 Migrate feature states by enabling the logic in the MigrateFeatureStates action.
msidbUpgradeAttributesIgnoreRemoveFailure 0x004 Continue installation upon failure to remove a product or application.

Good luck.
Answered 02/01/2005 by: brenthunter2005
Fifth Degree Brown Belt

Please log in to comment
It might help if you told us what the error was? And what appears in your event log, and log files?
Answered 02/01/2005 by: WiseUser
Fourth Degree Brown Belt

Please log in to comment
Hi Guys,

I think indeed the upgrade will happen when you put the remove existing properties between 'InstallValidate' and 'InstallInitialize'.You should try comparing the older version msi with the newer version to narrow down to the problem.

Have you tried installing your upgraded version msi with out upgrade logic on th emachine where the old msi exists.

what is the result?
Answered 02/02/2005 by: adaptability
Orange Senior Belt

Please log in to comment