Sharing Components between products?
Posted 17 March 2005 - 12:32
I have prepared an installation that was already released in severeal version to our clients.
No I want to prepare another product installation that can be installed separately from the 1st product or as a side-by-side to it.
Both these products will have many common file, which means - they (as I understand) should have the same components (this means, as far as I understand, all the commong components will have the same GUID in the 2 products).
Is there something I should be aware of when creating the 2nd product installation ?
How about pathching these 2 products? should they be done in 2 separate MSPs ?
Does sharing the Components between the 2 product will ensure that if one of the 2 products will be installed side by side and then one of the products will be removed, then the commong file will remain (until the other product will be removed) ?
Posted 18 March 2005 - 07:05
Im pretty sure that a patch is product specific so if has to be created for each install anyway.
Posted 18 March 2005 - 10:51
If however you install these files to separate directories (so the user ends up with two copies) then you should change the component GUID. In this case the will be treated as completely unrelated.
Posted 21 March 2005 - 12:18
Can a single patch update 2 different products (which might have different version numbers and will for sure have 2 different Product IDs) ?
Anything I should keep in mind when authoring the 2nd product in order to keep my life simple when I will have to prepare patch(es) for these products ?
Posted 18 June 2005 - 13:10
I have never tested what happens in patching, but I would assume the patch would update the files if they are found to be older versions than that of the patch, and left alone if they have already been patched. To minimize the chance of errors I would include whole files instead of bit level patches in the patch.
Remember that with patching the same condition that always applies to a file which maintains its GUID between updates: the new file has to be 100% backwards compatible. What this means in reality is that you must be able to patch one of your products and have it update the shared files and the other product must still work even if it has not been patched yet. If this is not the case the solution would generally be to change the file name, assign a new comonent GUID to the new file and then link the new EXE files for your application to use the new file.
Posted 18 June 2005 - 13:17
- Never change component guid for a preinstalled file without changing file name or install location
- Never keep the component guid the same for incompatible versions of files
- Never move a file to a new location without changing the GUID (though this is sometimes done to move a file in a major upgrade)
Hope this was an answer to what you actually asked, and not out of scope.