Windows Installer can install multiple packages using transaction processing. This capability is available beginning with Windows Installer 4.5. The installer will install all the packages belonging to a multiple-package transaction or none of the packages. If all the packages in the transaction cannot be installed successfully, or if the user cancels the installation, the Windows Installer can roll back changes and restore the computer to its original state.
A multiple-package installation package can contain a MsiEmbeddedChainer table that references a user-defined function that uses the MsiBeginTransaction, MsiJoinTransaction, and MsiEndTransaction functions.
The MsiPackageCertificate Table lists digital signature certificates used to verify the identity of the installation packages that make a multiple-package installation. You can use this table to reduce the number of times your multiple-package installation displays a User Account Control (UAC) prompt that requires a response by an administrator.
The following Windows Installer functions can make changes to the user's computer when the Windows Installer installs, repairs, updates, or removes applications. Beginning with Windows Installer 4.5, the installer can roll back changes made by these functions during the transaction processing of a multiple-package installation:
There is an exception if the Windows Installer encounters a package belonging to a multiple-package installation that contains a ForceReboot or ScheduleReboot action. In this case, Windows Installer does not install only that package. Other packages belonging to the multiple-package installation, that do not contain a ForceReboot or ScheduleReboot action, can be installed.
Windows Installer 4.0 and earlier: Transaction processing of multiple-package Windows Installer installations is not supported. These versions of the Windows Installer are unable to roll back the installation of multiple packages as a single transaction.
Windows Server 2008 R2 with the Remote Desktop Services role enabled: Not supported. A multiple package installation using the MsiEmbeddedChainer table fails if the Remote Desktop Services role is enabled.