|InstallSite MSI FAQ||Home||Introduction||Preparing||Creating||How To||Runtime Issues||Error Reference||MSI FAQ in Deutsch|
The UpgradeCode must be the same as in the older product, but the ProductCode, PackageCode must be different, and the ProductVersion must be higher. To cause uninstall to occur, the msidbUpgradeAttributesOnlyDetect bit in the Attributes column of the Upgrade table for that product version must be off. The RemoveExistingProducts standard action must be present in the InstallExecute sequence.
The new install didn't detect the prior version because the version detection was incorrect.
The first install was per-user (or per system) and the new one is not. A per-user (or per system) will not replace a product not installed the same per user/per-machine setting. Look in the log for the FindRelatedProducts entries. This setting is controlled by the ALLUSERS property.
If you sequence RemoveExistingProducts after InstallFinalize, it's not in the scripted audited section of the installation. The sequence of events is to install the first product and then uninstall the older version. However the uninstall of the older version (at RemoveExistingProducts) could fail and roll back. You now have both versions on the system because the newer version is still also installed.
Written by Phil Wilson, modified by Stefan Krueger
|News||Discussions||Windows Installer||Related Tools||More Help||InstallScript||About InstallSite||Shop||Site Search|
|Neuigkeiten||Diskussionsgruppen||Windows Installer||MSI FAQ||Artikel||Shop||Suche|
Copyright © by InstallSite Stefan
Krueger. All rights reserved. Legal
By using this site you agree to the license agreement. Webmaster contact.