Merge Module

A merge module is a special kind of Windows Installer database that contains the components needed to install a discrete software bundle. A merge module cannot be installed alone, but must be merged into a standard Windows Installer installation during the creation of the installation. Typically, a merge module or a collection of merge modules related by dependencies, installs a software product or portion of a product at runtime. The purpose of merge modules is to let you add self-contained software modules to multiple installations.

For example, if there are a number of applications that require a specifically configured component, it would be possible to create a merge module that installs and configures that component. That merge module could then be added to the installation packages of each product that required that particular component. This saves the effort of having to individually add the necessary files, registry entries, and other components to every installation. It also saves time if updates are needed, as instead of updating the installations for all applications, only the merge module is updated, and the installations only need to be rebuilt.

Standard merge modules have a .msm file extension. Some merge modules may be configurable merge modules. Such merge modules contain certain values that can be set to specify how the module behaves in your installation. For example, the author of the configurable merge module may allow attributes to be set on components, enable or disable isolated components, specify a bitmap for a dialog, or specify how a custom action is run. Configurable merge modules are supported only by Windows Installer 2.0 or higher.

There exist a number of pre-created merge modules which install commonly used Microsoft software packages, such as MDAC, ActiveX controls, MFC, SAPI and DCOM.