Nathaniel Hale
Nathaniel Hale

Reputation: 1

Advanced Installer's requirement to change the Product Code and Upgrade Code GUIDs when repackaging a new product version

I need a sanity check and some help here. I'm not extremely technical (such as a programming degree) but I'm in charge of the installers for my company. We've been using InnoSetup for over 10 years, and SetupBuilder for 6 years, and I've never had an issue with installing over the product's files with patches or feature updates...until I was tasked with migrating all our product installers over to Advanced Installer (called AI from here).

Whenever I try to install an update installer via AI, I get this error:

"Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel."

When I change the product's version in AI to package it with new files for a minor update or patch, AI asks to generate a new Product Code, stating that:

"A new Product Code is required if you plan to create Major Upgrades. Keep the existing Product Code if you plan to create Patches.

The fourth field of the Product Version is ignored by Windows Installer. Changing it alone does not generate a new package."

This warning doesn't appear only when I change the major version (first segment), but any of the 4: major.minor.patch.build.

I've looked at AI's document on this: https://www.advancedinstaller.com/user-guide/product-identification.html

And I've looked through many forum posts about similar issues, and their answer is the same: I need to change the Product Code. BUT, as I research this outside AI's site, the answer is the opposite: Never change the Product Code unless the changes are major enough to warrant considering it a separate product (like Microsoft Word 2003 to 2007), and don't just change the Upgrade Code for minor or patch updates (because these aren't upgrades to something like a higher edition of our product). AI's support says this is because of Windows Installer not allowing the same Product Code twice, as previously stated, but I'm not installing a new product; I'm installing an update of the same product. All that's changed is some files and the version number (2nd or 3rd segment). And again, no other installer program has had this problem.

So here's my question: How do I work around this so I can just run an older version, newer version, or even the same version and let it overwrite the files? Or if I'm stuck with this, is there a way to always uninstall the detected installation so it can install fresh each time? InnoSetup and SetupBuilder don't even uninstall the existing product, they just overwrite, so I'm vexed by AI's odd paradigm.

Upvotes: 0

Views: 814

Answers (1)

Bob Arnson
Bob Arnson

Reputation: 21896

If you want one .msi package to be able to upgrade another .msi package just by double-clicking, Windows Installer supports that only with major upgrades, which require you to change the product code and increment the version. Don't let the word major connote size of scope. As I said a very long time ago:

Think of major as an upper limit on the set of changes, not the lower limit on the type of upgrade you need.

Upvotes: 1

Related Questions