[This is preliminary documentation and subject to change.]
Because Microsoft® Windows® installer uses a relational database, you can manipulate the installation process by applying transform and merge operations to the installation database. A transform makes changes to some of the elements of a single database, for example, a transform can be used to change the language in the user interface of an application. A merge combines two databases into a single database. This means that the installation database for a component of the application can be developed separately and then later merged into the main installation database. By using multiple transforms and merges together, the user gains much more control over the installation process with the installer than is possible with other installation technologies.
Primary uses for transforms include:
Transforms can be used to encapsulate the various customizations of a single base package that are required by different groups of users. For example, this is useful in organizations where the finance and staff support departments require different installations of a particular product. A product's base package can be available to everyone at one administrative installation point with the appropriate customizations distributed to each group of users separately.
Transforms are useful for keeping packages authored at widely separated locations in synchronization during authoring. For example, if an upgrade is first developed for an English version of an application that exists in English and French, a transform can be applied to the upgraded English version that converts it into an upgraded French version.
Transforms can be employed to apply a minor fix to an application that does not warrant a major upgrade.
Merges are useful to development teams because they allow a large application to be divided into smaller parts that can be recombined later.
A development team might apply a merge operation in the following way:
Multiple transforms and merges can be applied to a base package and then applied on-the-fly during installation. This extends the capabilities of the installer to create custom packages and provides a mechanism for efficiently assigning the most appropriate installations to different groups of users.