Merge modules are simplified MSI packages that contain Windows Installer components and setup logic to be included into any number of MSI packages. A merge module cannot be installed alone because it lacks some vital database tables that are present in an installation database. Merge modules also contain additional tables that are unique to themselves. To install the information delivered by a merge module with an application, the module must first be merged into the application's .msi file. You can merge an MSI package with as many modules as you want.
The project to which you add a merge module and the module itself is merged at build time. Therefore, after the package is built the merge module is not a separate element anymore.
Advanced Installer is using the Merge Modules support provided by the MergeMod COM server. This functionality comes with the Windows Installer SDK, in the mergemod.dll file.
If this file is not present on your machine, Advanced Installer will notify you with an exception at build time. For installing the MergeMod COM server follow the next steps:
- Download and install latest Windows Installer SDK from Microsoft Platform SDK.
- Open a command prompt in folder "C:\Program Files (x86)\Windows Kits\8.0\bin\x86".
- Call from command-line "regsvr32.exe mergemod.dll". The result must be "DllRegisterServer in mergemod.dll succeeded".
When you add a Merge Module, it will be included in a feature and will be displayed on the Organization page.
Adding a merge module
Use the Insert key. An Open File dialog will appear where you can choose the module file to be merged into your package. Advanced Installer will extract and display some general information from the module.toolbar button, the “Add Module...” context menu item or press the
Although Advanced Installer will show you the dependencies (if any) of a merge module, none will be added automatically to the project, and no type of dependency check will be made at build time. However, Advanced Installer will check for module exclusions. If you try to add two merge modules and one of them excludes the other, the former will be excluded from build.
Adding a Visual Studio merge module
Use thetoolbar button or the “Add Visual Studio MSM” context menu item. A special dialog will appear where you can select the Visual Studio merge modules to be merged into your package.
Most Visual Studio merge modules also require their corresponding policy MSM files.
Adding a merge module from the repository
Use the “Add From Repository” context menu item. You can inspect the merge modules from the repository from the Repository Manager.
Exporting a merge module to the repository
Use the “Move To Repository” context menu item. You can inspect the merge modules from the repository from the Repository Manager.
Adding an Advanced Installer merge module
Use thetoolbar button or the “Add Advanced Installer MSM” context menu item. A special dialog will appear where you can select the Advanced Installer merge modules to be merged into your package.
Removing a merge module
Use the Delete key while a merge module is selected.toolbar button, the “Delete” list context menu item or press the
Edit the merge module's properties
Use the “Properties” option from the context menu while a merge module is selected. The Edit Module Properties dialog will appear.
Configuring the merge process
Use the “Configure” context menu item or press the + key. The Configure Merge Module Dialog will be displayed and will allow you to configure the merge process.
You can create a merge module using a merge module project.
Explore the content of a merge module
Sometimes you want to know for sure what is included in a merge module. If so, the “Explore in Advanced Installer” option from the context menu can help. It imports the merge module in a separated Advanced Installer AIP project where you can examine its content in details.
Add dependencies of a merge module to the project
Some merge modules are dependent on other merge modules. If this is the case, you can observe these dependencies in the Dependencies column of the Merge Module view. If you decide to also include these dependencies in your project, Advanced Installer can help. Option “Add dependencies” from context menu tries to add automatically the dependencies of the selected merge module into the project. To achieve this, it is performed a search in the directory where the selected merge module is placed. If a dependency cannot be found then you will be notified. You can add by yourself these missed dependencies using the method described in Adding a merge module section.
Low MSM Compatibility
Enabling this option will set Advanced Installer to not include in the final package empty tables. This could result in breaking some custom actions from the included merge modules, that would try to use other predefined empty tables, which were not included in the output package.