Windows Installer allows developers to create complex install scripts for their applications. It also includes support for patches and uninstalling program. MSI packages are usually created using tools like InstallShield or, for simpler scenarios, Visual Studio.
In a recent post, Heath Stewart discusses some of the new features for Windows Installer 4.5.
Script generation and execution is still performed per-package, but the commit phase is performed for all products at the same time. If an error occurs, the rollback phase is performed for all products at the same time. This change in behavior extends to multi-product patch install as well.
Another feature is the ability affects how dependent applications are installed.
An external UI handler allows installation developers to present a single, consistent UI for chained products to the user. Office, Visual Studio, and many other product use them. The problem is when you want to compose your product by redistributing another product. Embedded UI handlers allow package developers to still handle and filter messages before they are dispatched to the standard UI handler. This feature also ties in with multi-package transactions by allowing a chained MSI to join an existing transaction.
Other changes are meant to improve patch and shared component robustness and to allow for custom actions during uninstallation.