An installation and configuration service included with modern versions of the Microsoft Windows operating system. It is also available as an add-on for all versions of Windows since Windows 95. It provides a common method for installing any type of application or service that benefits users by providing a similar process for all installation tasks. It also provides self-repair facilities, policy-based installation facilities, patch tracking, "rollback" in case of failure, among a handful of other housekeeping tools. Since Windows Installer 2.0 comes with Windows XP, a good application Designed for Windows XP should take advantage of it.

Applications Designed for Windows 95 and later versions require both an installation and an uninstallation mechanism. While other third-party installation tools existed, Group Policy-enforced installations required a common framework in an Active Directory environment. But even outside of Active Directory, Windows Installer relieves the developer of the requirement to create or use a customized installation and uninstallation tool, letting the developer spend more time writing the application. Similar services in other operating systems include apt-get for Debian GNU/Linux, and RPM for Red Hat Linux.

A developer looking to create a Windows Installer (MSI) package from "scratch" can use Microsoft's "orca" application, available for free from the MSDN website. However, most developers use a third-party MSI creation tool, such as InstallShield and Advanced Installer. The end result is the same, however. An installer-maker produces a stand-alone MSI file which the developer can distribute instead of an executable file or a ZIP file. In most cases, one installer-maker can edit a package created by another, and developers will create the MSI package in one tool and test it in Orca.

Patch files (MSP) and merge modules (MSM), or prepackaged components required by an application, may also be produced. For example, Microsoft Office 2000 Service Pack 3 is OFF2KSP3.MSP, and DirectX 9 may be merged into MSI packages when provided as a MSM package.

I've worked with three MSI installer-makers. The are: The one included in Visual Studio .NET 2002, InstallShield X, and Advanced Installer by Caphyon.

Of these three, I had the best results with Advanced Installer because it supported "All Users" installations and didn't require the .NET Framework. By comparison, Visual Studio .NET installers required .NET installed on the target system, and InstallShield did not support placing program icons in the "All Users" profile on Windows NT, Windows 2000 and Windows XP. Advanced Installer has the drawback of not supporting self-repair, which is best handled by the Visual Studio .NET installer-maker.