using upgrade table?
1. Do we have to fill in the upgrade table in order to do a patch which is a "major upgrade" (IE where the product code guid has been changed)? If not filled in, will it still patch OK? (given that both compiled MSI files have the same upgrade code guid when they were originally compiled, despite their different product version and different product code).
2. What is the 'ActionProperty' in the upgrade table, is there somewhere that properly documents this?
I have msidbUpgradeAttributesMigrateFeatures, msidbUpgradeAttributesOnlyDetect, ETC
(bits of the meaning of this hex number) from the MSI help file but this is not too descriptive about what these actually are...
3. What is the purpose of REMOVE in the upgrade table; that is, if I had removed a feature from my project, then presumably the patch would already remove it so why would I need to put it in here as well?
4. Why would you want to fill in the upgrade table?
Will this prevent a full uninstall of the previous version and allow it simply to be shifted to a new version, or something?
At present I am thinking that customers can install V2.02.5101 and could just uninstall that to put on V2.03.5861
Or they could use my patch I provide to patch from V2.02.5101 to V2.03.5861 (created with the patch wizard)... but still no use of the upgrade table... does it have an application .. ?
1.) yes, yes but patch is no major upgrade
2.) look into the ms platform sdk. actionproperty is like a property to receive upgrade values
3.) installer detects the features to remove, you can override this here
4.) - you can fill the upgrade table to prevent the installation of an earlier version after an upgrade
for ex: you can prevent that version 1.0 is installed after version 2.0 has been installed, but you have to include this in the upgrade table of version 1.0
- you can specifiy versions to upgrade or uninstall here
for example you build version 3.0, you can specify in the upgrade table, that it should remove (upgrade) version 1.0 and 2.0.
1. Patch is apparently an major upgrade if you change the product code (while keeping the same upgrade code). It says that if you change the name of a component, or add or remove any components, from your project, then you should make it a major upgrade...?
2. What is the HTTP address to download the ms platform sdk?
3. When you create the patch in installshield developer (Tools/Generate Patch), it already has a spot where you can put in the GUIDs of previous patch versions to remove when putting on the new patch. In addition Developer has a spot where you can change the features you want removed from the 'smart' defaults. So why would you want it to put this here instead?
4. Normally it already does seem to prevent you from installing any other version when a version of your product is already installed- or are you saying that this is only because I had the same product code and now that I've done a 'major upgrade' with a patch it won't automatically notice that it has the same upgrade code? That is, presumably it's possible for someone to install V2.0 full version, or to install V1.0 and then patch it to V2.0, but one would not want for them to install V2.0 and then install V1.0 over the top... !!
"you can specifiy versions to upgrade or uninstall here
for example you build version 3.0, you can specify in the upgrade table, that it should remove (upgrade) version 1.0 and 2.0"
Yes, well, this is the thing, is that the patch creation wizard already seems to have a spot where you can list GUIDs of previous patch versions to uninstall. HMM.. are you saying it will automatically *uninstall* a full version before putting on a new full version (whereas normally it just gives you a message saying there's already a version installed and to uninstall it first).. hmm.. we need to distinguish here between *patch* and *product* GUIDs to remove here..
By the way, does the patch appear in add/remove programs?
1) uhm, ok
3) you will use this table if you build a full functional setup msi package which will also upgrade all previous versions
4) you got it
msi will not uninstall the old version first, it will make an upgrade. (it will check, which features are no longer in the new version and will uninstall them)
i don't know if the patch will appear automatically, but it should be no problem to make it appear