Definition of a MergeModule



The keyword for a definition of a Microsoft merge module is MergeModule. A global ID of a MergeModule should begin with gid_Mergemodule. MergeModules are not assigned to modules defined in the scp project. But for the merge process it is necessary, that the merge module knows the directory and the feature (in Windows Installer terminology) under which it is integrated into the Windows Installer database. Additionally the name of the cabinet file has to be determined, because the cabinet file, that is included into in the msm file, always has to have the same specific name(MergeModule.CABinet).Therefore the definition of a merge module in scp project is straightforward. An example definition of a Microsoft VC80 runtime merge module looks like:

MergeModule gid_Mergemodule_Microsoft_Vc80_Crt_X86
Name = "Microsoft_VC80_CRT_x86.msm";
Cabfilename = "openofficeorg-vc80crt.cab";
Feature = "gm_Root";
Rootdir = "TARGETDIR";
End

The definition of a MergeModule requires a name, that is the name of the msm file. This file has to be located into one of the include pathes that are defined in the cvs module instsetoo_native/util/openoffice.lst. There the file has to be found during packaging process. The defined Cabfilename is used in that way, that after successful packaging process a cabinet file with this name can be found next to the msi database. Feature and Rootdir are required, because the merge process has to know, under which directory and under which feature the content of the msm file has to be integrated into the msi database. For the Rootdir the standard value is "TARGETDIR", which is the correct choice in most cases. The Feature is the installation unit that can be selected or deselected during installation process. In most cases "gm_Root" is a good choice, so that the content of the msm file cannot be deselected during installation process.