I can find plenty of info on how msi upgrades. E.g. info about minor upgrade, small upgrade, major upgade, and their use case and limitations. However, I cannot find info on the upgrade behavior of merge module, such as:
There are two upgrade scenarios that a merge module can take part in. The first is when the installer is upgrading, and it upgrades a .msm
file. This happens in cases like the Visual Studio service pack where they provide updated merge modules for you to use. This can be problematic as .msm
files do not have a file version (even though they have a merge module version), so file versioning rules do not apply kindly. You're probably not asking about this case.
The other scenario is when the merge module has been merged into an installer that will upgrade. It is no longer a merge module, but instead its files and other records are part of the consuming installer. In this case, the .msi
into which it has been merged controls the upgrade steps. The two interact, informing your answers to your first three questions. If the merge module has changes that do not follow minor upgrade rules, then the consuming installer will be unable to use a minor upgrade, and must resort to major upgrades. Correspondingly if you want to use (or allow) minor upgrades in the consuming installer, you must be careful about your components. This can be harder than in an .msi
since you cannot add new features inside a merge module. File versioning rules will apply just like they do in all Windows Installer installations; thus the answer to your fourth question is determined on a file-by-file, component-by-component basis instead of a group answer for the entire contents of the module.
Question: I believe I need to know how to version the merge module as described in the second scenario in the answer.
Situation:
I have numerous products that all install the same merge module.
If one product installs a newer version of the merge module I do not want an old version of a different product to overwrite the newest merge module.
Can someone describe if this is possible and if so how?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With