The new multi-package transaction introduced in Windows Installer 4.5 enables creating a single Windows Installer transaction from separate packages. As a result, producers can now divide their products into multiple packages that can be composed and retain the robustness of the Windows Installer transaction.
A common example of this delivering language specific products in two packages, one language neutral World Wide package and one language specific package. Support for Multi-Package Transaction is provided via new APIs MsiBeginTransaction, MsiEndTransaction, and MsiJoinTransaction. In creating this multi-package transaction support, Windows Installer is further formalizing the role of a chainer in the application installation and servicing stack.
It adds the new MsiEmbeddedUI and MsiEmbeddedChainer tables to support embedding the binaries that were previously required to be external to the MSI. Through these embedding features, what was previously just external code can now be invoked at the Windows integration points designed to just call a single Windows Installer package.
With Microsoft Windows Installer the producers will be able to simple make products that are made of several separate packages.