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.