Microsoft Windows Installer
Microsoft Windows Installer is a redistributable system component that enables software developers to enjoy the benefits of a better application deployment. It provides the backbone for installing and uninstalling software on the operating system.
One of the most important capabilities of Windows Installer is Multiple Package Transaction. It uses a chainer to integrate packages in a transaction with multiple components. So in case not all packages are successfully installed or you choose to cancel the installation process, Windows Installer can roll back all the changes and restore the operating system to its original state.
In addition to that, you do not have to install packages one by one and reboot the machine after each installation. Windows Installer does that in a single transaction that integrates the installation progress, rollback and reboot.
When it comes to patching an application, Windows Installer only updates the files affected by the patch, thus reducing the patching time. If you choose to uninstall a patch, you can do that regardless of the order the other patches were installed, and revert the software to the state before the patching occurred.
The Embeded UI Handler is another feature provided by Windows Installer. It allows you to integrate a custom user interface handler in the installer package that can be invoked using the Add or Remove Programs applet in the Control Panel or during a product repair process.
Moreover, Microsoft Windows Installer makes it possible for an updated component to be available to all products using it (enable installation events across multiple packages). Last but not least, setup developers can use Windows Installer to develop single installation packages capable of installing an application in either a per-machine or a per-user installation context.