According to Microsoft
"The ProductCode property is a unique identifier for the particular product release" [1]
and
"The product code is the unique GUID of identifying an application or product release; In other words, different versions and languages of Product must have different product codes" [2]
But your description says
"The product code can be the same across different versions of the same product"
and
"Different versions of the same product can share the same product code"
Can you please explain the discrepancy in the two descriptions? They seem to be in conflict.
Jasper
[1] : http://msdn.microsoft.com/en-us/library ... 85%29.aspx
[2] : http://blogs.msdn.com/b/pusu/archive/20 ... g-msi.aspx
PRODUCTCODE description differs from Microsofts definition
-
- Site Admin
- Posts: 5361
- Joined: Sun Aug 22, 2010 4:28 am
Re: PRODUCTCODE description differs from Microsofts definiti
Dear User,
if you continue to read the MSI "ProductCode property" documentation;
A product upgrade that updates a product into an entirely new product must also change the product code. The 32-bit and 64-bit versions of an application's package must be assigned different product codes.
The ProductCode property identifies a unique product family.
Supposing you have "Product A 1.0" and "Product B 1.0" each product must have its unique ProductCode (in order to be recognized as different products by the MSI engine).
In case of product updates, es. "Product A 1.2", the ProductCode must be the same across different versions of the same product (otherwise it will be not recognized as a product family upgrade).
Hope this clarify your doubt.
Regards
if you continue to read the MSI "ProductCode property" documentation;
A product upgrade that updates a product into an entirely new product must also change the product code. The 32-bit and 64-bit versions of an application's package must be assigned different product codes.
The ProductCode property identifies a unique product family.
Supposing you have "Product A 1.0" and "Product B 1.0" each product must have its unique ProductCode (in order to be recognized as different products by the MSI engine).
In case of product updates, es. "Product A 1.2", the ProductCode must be the same across different versions of the same product (otherwise it will be not recognized as a product family upgrade).
Hope this clarify your doubt.
Regards
Francesco Toscano
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE
Re: PRODUCTCODE description differs from Microsofts definiti
Hello Francesco,
Thank you for the response.
Why am I asking this? Well for a while now we have kept the productcode and upgradecode the same and simply set the RevisionCode (seems to be the MSI PackageCode) to auto update on build. We also call TransformInstance if NewInstance is true. Here is the issue. We install a version say 10.0.2 then install a version 10.0.3 in parallel. If we then uninstall 10.0.2 we are toast. After this if we want to install 10.0.2 we simply get a box that says 'Error'. Running in debug mode tells us that a product with that productcode is already installed. This is why I am looking to change product codes between releases.
What would be the problem with using the same upgradecode and different productcodes? That seems to be what Microsoft recommends also.
On ProductCode: "This ID must vary for different versions and language"[2] and "If significant changes are made to a product then the product code should also be changed to reflect this."[3] and as you have stated "A product upgrade that updates a product into an entirely new product must also change the product code."[2] That last statement does not negate the others, it adds another condition for changing the product code.
On UpgradeCode: You say "otherwise it will be not recognized as a product family upgrade." I was under the impression that would that not be handled by the UpgradeCode. Microsoft says "The UpgradeCode property is a GUID representing a related set of products"[3] and "The upgrade code is the unique GUID of identifying a family of a product. That is, the same products with different version... These products have different ProductCodes, but they are linked together by using SAME UpgradeCode" [1]
[1] http://blogs.msdn.com/b/pusu/archive/20 ... g-msi.aspx
[2] http://msdn.microsoft.com/en-us/library ... 85%29.aspx
[3] http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Thank you for the response.
Why am I asking this? Well for a while now we have kept the productcode and upgradecode the same and simply set the RevisionCode (seems to be the MSI PackageCode) to auto update on build. We also call TransformInstance if NewInstance is true. Here is the issue. We install a version say 10.0.2 then install a version 10.0.3 in parallel. If we then uninstall 10.0.2 we are toast. After this if we want to install 10.0.2 we simply get a box that says 'Error'. Running in debug mode tells us that a product with that productcode is already installed. This is why I am looking to change product codes between releases.
What would be the problem with using the same upgradecode and different productcodes? That seems to be what Microsoft recommends also.
On ProductCode: "This ID must vary for different versions and language"[2] and "If significant changes are made to a product then the product code should also be changed to reflect this."[3] and as you have stated "A product upgrade that updates a product into an entirely new product must also change the product code."[2] That last statement does not negate the others, it adds another condition for changing the product code.
On UpgradeCode: You say "otherwise it will be not recognized as a product family upgrade." I was under the impression that would that not be handled by the UpgradeCode. Microsoft says "The UpgradeCode property is a GUID representing a related set of products"[3] and "The upgrade code is the unique GUID of identifying a family of a product. That is, the same products with different version... These products have different ProductCodes, but they are linked together by using SAME UpgradeCode" [1]
[1] http://blogs.msdn.com/b/pusu/archive/20 ... g-msi.aspx
[2] http://msdn.microsoft.com/en-us/library ... 85%29.aspx
[3] http://msdn.microsoft.com/en-us/library ... 85%29.aspx
-
- Site Admin
- Posts: 5361
- Joined: Sun Aug 22, 2010 4:28 am
Re: PRODUCTCODE description differs from Microsofts definiti
Dear User,
The UpgradeCode is only used with Patches and not with product Upgrades.
You must keep the same ProductCode & UpgradeCode across different versions of the same product, for a correct product update and/or Patch.
Regards
The UpgradeCode is only used with Patches and not with product Upgrades.
You must keep the same ProductCode & UpgradeCode across different versions of the same product, for a correct product update and/or Patch.
Regards
Francesco Toscano
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE
Who is online
Users browsing this forum: No registered users and 95 guests