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.
Note Merge Module Projects are not available in the Standard Edition of Visual Basic .NET. For more information, see Visual Basic Standard Edition Features.
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.