Introduction

Those who deal with software product administration inside a company know how complex an application’s installation and monitoring process is.

Its complexity is due to various factors, especially regarding the setup of software products, most of which present roadblocks that could slow down your processes.

Some of these roadblocks include the inability to properly handle the resources and other products, the lack of easy customization, the difficulty of making decisions regarding a part of the application needed by the user, and the struggle that comes with the diagnosis and repair of possible configuration problems.

Note: Classic installers (before Windows Installer) don’t know what to do when a resource (for example, a file) is already present on the machine from another application.

And here’s where Windows Installer comes to help. As part of the Windows operating system, Windows Installer is a base service used to manage software products. This includes the following aspects:

  • Installations
  • Modifications
  • Improvement and uninstallation of software products
  • Reliable application customization
  • Solving Configuration issues

Windows Installer also provides a better handle of commonly used resources, imposes conditions regarding the usage of files with different versions, and fixes rolling applications.

This book gives a deeper overview of the basic features provided by the Windows Installer technology and its uses.

It is particularly aimed at beginner IT Pros that want to understand the Windows Installer technology, how the installer structure is composed, learn basic scenarios with specialized applications, adopt best practices, discover helpful tools, and get more knowledge on how to debug installations.

Before Windows Installer (scripting) – legacy packages

Before Windows Installer, software products used various technologies at the application’s setup request - each of them containing specific installation rules.

It was common to encounter various errors during installation. For example, you could find an older version of a file installed on top of a newer version. Certain setups didn’t take into account the resources used along other applications. As a result, the installation and uninstallation of some applications compromised the functionality of others.

Since the setup imposed its own rules, it caused conflicts when various applications interacted between them and the modification and improvement of the applications triggered other faulty behavior. When an application stops working, any attempt to repair it could cause the system’s destabilization, leading up to the whole system’s resettlement.

Fulfilling a need – when and where Windows Installer was published

Windows Installer was released to allow for a set of common rules in the applications’ administration (installing, repairing, uninstalling).

Its release led to the disappearance of the problems mentioned above, and furthermore, eased the work of the system administrator. It was published at the same time as Office 2000, making it the first application based on Windows Installer technology.

What is Windows Installer?

Windows Installer is a service provided by the Windows operating system to manage software products.

Windows Installer is not a distribution technology for software products. But, software products distributing technologies use Windows Installer because of the benefits it offers.

What are Windows Installer’s Benefits?

Some of the main benefits offered by Windows Installer include:

  • Standard formatting (Windows Installer created the MSI package, a new application format)
  • Transactional install and rollback (Windows Installer packages can be easily installed according to the user’s requirements, and if the installation fails, all the actions taken upon that moment can be erased)
  • The Self-healing option (or self-repair) for corrupted or erased files (when certain files are corrupted or erased, the user can trigger the Repair option, which fixes those files)
  • Installation on request (packages can be installed in one simple click whenever the user wants)
  • Packages can use Transform type files (which allows a package to be customized)
  • Packages can use patches (great for fixing bugs in the applications)
  • Managing the state of an application(Windows Installer offers developers an API for monitoring the state of a package - whether it is or it isn’t installed on the machine)
  • Administrator’s rights are no longer necessary for installing applications (this depends on whether the application is user-targeted or not)
  • Scriptable API (for manipulating MSI type files)
  • Packages can be managed via the MSIEXEC.exe command line.

What applications should not be repackaged?

In certain circumstances, we can deal with applications that shouldn’t be repackaged, here are some of them:

  • Vendor MSI files. Instead, you can customize them using Transform files.
  • Patches, updates, and hotfixes for the operating system, Windows Installer Service, MDAC. Those applications shouldn’t be repackaged because they influence Windows security rules.
  • Windows Media Player, Microsoft Internet Explorer, antivirus software, and device drivers. These types of applications generate changes in the operating system which includes the protection of Windows files.

When it is still necessary to install a driver, an antivirus, or a hotfix - these are the options:

  • The original setup was to be rolled using MSI as a “hiding place” (from now on, we will be referring to this as a “wrapper” or the “wrapping method”).
  • Silently install drivers using the tools provided by Microsoft (dpinst.exe, DIFxAPI, etc).