Microsoft Windows Installer - MSI

Microsoft Windows Installer is a base service of the Microsoft Windows operating system that enables you to manage the state of software applications. The managed state of an application includes installation, modification, upgrade, or removal. Windows Installer provides you with consistent and reliable methods to customize installations, update and upgrade applications, and resolve configuration problems. It can also manage shared resources, enforce consistent file version rules, and diagnose and repair applications at runtime. This advanced level paper is intended for system administrators familiar with managing applications.

Introduction

If you manage the software in your organization, you already know that installing, tracking, and maintaining a variety of software applications can often become a complex task. This is because most setup programs do not adequately manage shared resources to enforce consistent installation rules, provide easy customization, help you decide which pieces of an application users might need, or help you diagnose and repair configuration problems.

Microsoft® Windows® Installer is a base service of the Microsoft Windows operating system that enables you to manage the state of software applications. The managed state of an application includes installation, modification, upgrade, or removal. Windows Installer provides you with consistent and reliable methods to customize installations, update and upgrade applications, and resolve configuration problems. It can also manage shared resources, enforce consistent file version rules, and diagnose and repair applications at runtime.

Overview of Windows Installer

Prior to Windows Installer, software applications used various setup technologies, each of which contained unique installation rules for each application. At times, the applications did the wrong things at setup time. For instance, an earlier version of a particular file might be installed over a newer version of that same file. Some setup technologies made it difficult to maintain accurate reference counts on shared components for the many applications installed on a computer. As a result, installing or removing certain applications might break other applications.

Using Windows Installer, the operating system implements all of the proper installation rules. To adhere to those rules and to avoid the problems described in the preceding paragraph, an application needs only to describe itself in a Windows Installer package. Windows Installer then performs the installation tasks for each application, which can help you prevent or minimize common installation problems.

Adding, Upgrading, or Deleting an Application Can Damage Other Installed Applications

Prior to Windows Installer, adding, upgrading, or deleting an application can break other existing applications on a computer — or worse, it can break the operating system. There are many causes of this type of problem, and Windows Installer takes steps to minimize them. A few of the ways Windows Installer solves such problems are detailed in the following subsections.

Providing consistent and reliable version rules

Traditionally, software manufacturers delivered a unique setup program for each application. When an application was added, modified, upgraded, or removed from a system, the setup program enforced its own rules, such as providing version-control directives. Because each setup program provided its own rules, interactions among two or more applications sometimes caused conflicting results. For example, newer versions of shared files might be replaced with older ones. As a result, applications that required the newer version of the file were not successfully and completely installed. A failed installation could cause other applications not to function.

You can avoid this problem by taking advantage of Windows Installer. Windows Installer provides consistent and reliable installation for all applications, which prevents newer files from being overwritten by older files.

Providing system-wide management of shared resources

Inter-application conflicts can occur when uninstalling one application removes files shared by other applications on the computer.

Windows Installer addresses this problem by keeping track of the resources that Windows Installer-based applications use. For example, several products include the Grid Control for Microsoft Visual Basic, which uses Windows Installer. After this control is installed, Windows Installer detects its presence. When you install other products that use the Grid Control, each product is added to the client list for the Grid Control. Windows Installer references these client lists when installing, upgrading, or removing components.

Windows Installer maintains and manages all setup and installation information about each product it installs. When you uninstall a product, Windows Installer does not remove any component that has other applications in its client list. This capability is available with other setup technologies, but it requires some complex coordination of several products from various manufacturers, which use numerous installation technologies. This process is not recommended because it is unreliable.

Windows Installer provides an additional advantage: The installation logic for Visual Basic for Applications (VBA) is encapsulated within a reusable Windows Installer module. Therefore, all software products that incorporate VBA, regardless of the software manufacturer, install and remove VBA as intended by the Visual Basic developer.

MORE INFORMATION HERE