Windows Installer

Important features such as rollback and versioning depend on a consistent internal database for reliable operation.

A product is identified by a unique GUID (the ProductCode property) providing an authoritative identity throughout the world.

The GUID, in combination with the version number (ProductVersion property), allows for release management of the product's files and registry keys.

When an MSI-based program is launched, Windows Installer checks the existence of key paths.

If there is a mismatch between the current system state and the value specified in the MSI package (e.g., a key file is missing), the related feature is re-installed.

There are a number of commercial and freeware products to assist in creating MSI packages, including Visual Studio (natively up to VS 2010,[8] with an extension on newer VS versions[9]), InstallShield, WiX and Advanced Installer.

To varying degrees, the user interface and behavior may be configured for use in less common situations such as unattended installation.

Windows Installer may be slower than native code installation technologies, such as InstallAware,[10] due to the overhead of component registration and rollback support, which often involves generating tens of thousands of registry keys and temporary files.

There is a limited language of buttons, text fields and labels which can be arranged in a sequence of dialogue boxes.

Microsoft provides a set of Internal Consistency Evaluators (ICE) that can be used to detect potential problems with an MSI database.