|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
Merge Module Projects
Merge Module projects allow you to create reusable setup components. Much the same as dynamic-link libraries allow you to share code between applications, merge modules allow you to share setup code between Windows Installers.
A merge module (.msm file) is a single package that contains all files, resources, registry entries, and setup logic necessary to install a component. Merge modules cannot be installed alone, but must be used within the context of a Windows Installer (.msi) file.
Merge modules allow you to capture all of the dependencies for a particular component, insuring that the correct versions are installed. Once you have distributed a merge module it should never be modified; instead you should create a new merge module for each successive version of your component.
In order to avoid versioning problems, you should use always merge modules for any component or file that will be shared by multiple applications.