views:

58

answers:

1

I want to upgrade my product via msi setup. The Upgrade Code of both msi remains the same because it's the same product family. Even if I change Version/Product Code of the msi for updating it just tells me the product is already installed or asks me to repair it. it doesn't ever provide an update option that replaces the current installation.

I'm using Visual Studio 2008 Pro to generate the msi setup

+1  A: 

When you change the Version property in your Setup project, Visual Studio should prompt you to also change the ProductCode. You must do this. Then, you must also set the RemovePreviousVersion property to true. Make sure the UpgradeCode stays the same.

This is probably the easiest way and, from reading your question, what you are looking for. Note that this is more of an uninstall, then reinstall, than an "upgrade" per se.

Dave
thanks a lot ;)
Kai
-1 Both are called 'upgrades'. MSI rules define a Major Upgrade as a uninstall/reinstall, with a change in ProductCode under the same family of UpgradeCodes. A Minor Ugrade changes only those Components that are different between the two verisons.
Dave Sims
@DSims: Yes, I'm familiar with the MSI definitions and the inherent semantic ambiguity. Thanks for pointing this out. I only mentioned the uninstall/reinstall because I thought it might prevent some confusion. Many are bitten by this behavior when creating their initial installers. Although it is called an upgrade, that language does not conform to the way most non-installer people understand the term. As far as the OS is concerned, it is an entirely new product.
Dave
@Dave: sorry to be pedantic. Semantic precision is unfortunately crucial with MSI/Windows installer. It is an inherently fragile domain, the way MS structured it, and specific words have specific technical and business consequences.
Dave Sims