InstallShield, Product Codes, Package Codes, and Upgrade Codes, Oh my god!
2011-08-29 15:14
330 查看
So you’ve created an upgrade item with InstallShield (mine is 11.5), you’ve set everything up right as far as you can tell, and when you run in to upgrade a previous version, the installer pops
up the “Modify/Repair/Uninstall” screen of the old version
Aha! You say. Forgot to change the Package code. So a GUID Generate and rebuild later, you try again and this time get this:
You got the Package Code different, Upgrade and Product Code the same in the two versions, and you’ve got a Major Upgrade item setup and configured to recognize the proper Old version number range.
What’s up?
Come to find out, the IS help is a little confused on this topic. When you create a MAJOR UPGRADE to your installation (which, if my experience is any indication, almost EVERY upgrade is a major upgrade), you need to change both the Product
Code and the Package
Code! But here’s the trick, the Upgrade Code stays the same.
Why? Because appearently, a Major Upgrade is considered an entirely new Product, even though it’s not, because you intend it to upgrade older versions of the product.
But MSI doesn’t use the Product Code for that, it uses the Upgrade Code for that purpose.
So, basic rule is:
When you create a new Version of your app’s installation with InstallShield (or any MSI based Installer, I suspect), be sure to:
Make sure you have an Upgrade Item setup to recognize the proper version range
Make sure you generate a NEW PACKAGE CODE guid
Make sure you generate a NEW PRODUCT CODE guid
Make sure you DO NOT modify the UPGRADE CODE guid (basically, you almost never modify the Upgrade Code guid)
Kneel before the holy
altar and make an offering to the MSI gods.
Here’s a handy table from a Macrovision support site article that
also might help. Basically, it illustrates when a particular code needs to be changed (the X’s), based on what kind of upgrade the new version of your install is.
You know, I whipped out an install in InnoSetup in,
like, 5 minutes. And it’s free.
up the “Modify/Repair/Uninstall” screen of the old version
Aha! You say. Forgot to change the Package code. So a GUID Generate and rebuild later, you try again and this time get this:
You got the Package Code different, Upgrade and Product Code the same in the two versions, and you’ve got a Major Upgrade item setup and configured to recognize the proper Old version number range.
What’s up?
Come to find out, the IS help is a little confused on this topic. When you create a MAJOR UPGRADE to your installation (which, if my experience is any indication, almost EVERY upgrade is a major upgrade), you need to change both the Product
Code and the Package
Code! But here’s the trick, the Upgrade Code stays the same.
Why? Because appearently, a Major Upgrade is considered an entirely new Product, even though it’s not, because you intend it to upgrade older versions of the product.
But MSI doesn’t use the Product Code for that, it uses the Upgrade Code for that purpose.
So, basic rule is:
When you create a new Version of your app’s installation with InstallShield (or any MSI based Installer, I suspect), be sure to:
Make sure you have an Upgrade Item setup to recognize the proper version range
Make sure you generate a NEW PACKAGE CODE guid
Make sure you generate a NEW PRODUCT CODE guid
Make sure you DO NOT modify the UPGRADE CODE guid (basically, you almost never modify the Upgrade Code guid)
Kneel before the holy
altar and make an offering to the MSI gods.
Here’s a handy table from a Macrovision support site article that
also might help. Basically, it illustrates when a particular code needs to be changed (the X’s), based on what kind of upgrade the new version of your install is.
Update Type | Package Code | Product Version | Product Code | Upgrade Code |
---|---|---|---|---|
Minor Upgrade without Patching | X | |||
Minor Upgrade with Patch | X | X | ||
Major Upgrade | X | X | X |
like, 5 minutes. And it’s free.
相关文章推荐
- What are Upgrade, Product and Package Codes used for? By pusu
- sharepoint mysite and upgrade topics
- OH MY GOD
- oh my god windows 默认的FD_SETSIZE 居然是64
- Singletons and Services and Shutdowns Oh My
- oh mygod!伤寒还是什么?
- oh my god
- OH MY GOD! 我的后台页面都被IE可缓存了。。。
- oh-my-zsh and auto-fu.zsh
- LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面
- Seasons' Show (Oh My God Your Granddaughter's Gone) [UNFINISHED]
- map按value排序, oh my god
- 如何快乐上手DroiBaaS 云代码操作! Oh My God, 怎么会这么简单!
- oh-my-zsh upgrade problem
- Oh My God
- Install and Update autojump and oh-my-zsh Behind a Firewall
- Oh my God,甲骨文oracle 准备收购 Sun 了.
- oh my god,写20万数据到Excel只需9秒
- 对序列化后的buffer进行strlen操作, oh my god
- Seasons' Show (Oh My God Your Granddaughter's Gone) [UNFINISHED]