The Indusa Blog

Working with Windows Installer – Concepts, Installation Tips, and More…

Posted by Indusa Admin on September 1, 2017 12:29 pm

Share Button

Microsoft Windows Installer, a component of the Windows operating system, is used for installing and uninstalling of software. If you’re looking to make software installation, maintenance, and uninstallation straightforward and easy, Windows Installer is what you need – a setup.exe file which installs a product on your Windows operating system.

Employee Blog1

Everyone uses setup.exe to install any product. And while people might think installation of a product is simply copying binaries or files on the system, the fact is installation is a lot more than that – it includes copying of files, system changes, configuration, and much more.

Basic Concepts

Windows Installer of a product is generally in the .exe or .msi format. Here are some basic extensions which are used for Windows Installer.

  • EXE (.exe):

    Almost all Windows Installers come in this format; you just need to double-click on EXE to start the installation process. Internally, EXE files unwrap the MSI files during installation.

  • MSI (.msi):

    MSI is an installation database file which contains a lot of tables. These tables store information about the various binaries to be installed, actions that are getting executed at the time of installation and much more.

  • MST (.mst):

    MST is a Windows Installer Transform file — a list of changes that should be applied to the installation. When you apply MST to an install package, the installer can modify the data in the installation database.

  • MSP (.msp):

    MSP is a Windows Installer patch — a self-contained package that contains information regarding the specific versions of the application to which the patch is applicable, as well as information about the differences between versions.

Installer Versioning

Every Windows installer contains a ProductVersion file which describes a version of that product. Product versioning is important in upgrade scenarios. The format of ProductVersion is similar to xx.yy.zz where xx describes the major version number, yy describes the minor version number, and zz describes the build number. For example, for a product with version 8.11.45, 8 is a major version, 11 is a minor version and 45 is a build number.


Upgrading a product is installation of the newer version on top of the already installed product. If you install the same product version on top of an already installed product, it is reinstallation. Windows Installer supports three types of product upgrades:

  • Small updates: While making a new version of product, if there are changes in only one or two files
  • Minor upgrades: If there are many files you want to change
  • Major upgrades: If you want to add or remove a feature , the older product is first removed, and the new product/version is installed

Installation Process

Any installation process primarily involves:

Employee Blog1_2

When you start an installation process, there is an execution sequence that the installer follows. The execution sequence is different for different products, depending on the product’s requirement. There is a provision of rollback as well if the installation fails in between. The main purpose of rollback is to maintain the system’s state.

After installation of product, entry for that product gets added into the registry: HKEY_CLASSES_ROOT\Installer\Products. If you want to check whether the product has been successfully installed or not, you can go to the Add/Remove programs in the control panel and check. The control panel reads those entries from the registry – the registry contains all details of the installed product and plays a very important role for any product installation.

Uninstallation of any product, on the other hand, is the removal of a product from the system – the reverse of installation. Uninstallation removes files, configurations, registry entries, and cleans up the system. You can also just delete temp or user added files.

Tools for creation of Installer

Since MSI is the standard for installing Windows programs, it is advisable to only use this format in order to keep the database of installed products consistent. If your deployment solution doesn’t allow you to create MSI files, you have the option to use a third party tool, or MSI packagers as they are called. There are many tools in the market for creating Windows Installer. Some of them are mentioned below:

  • InstallShield
  • InstallAnyWhere
  • AdvanceInstaller
  • WiX

Ease the Software Installation Process

If you’re looking to install, maintain, or remove software programs, Windows Installer is a much sought after option. Using Windows Installer, you can easily and efficiently synchronize with other installers and keep the internal database of installed products consistent. Get started with Windows Installer as your standard foundation for installing and uninstalling software, and make the process of software installation, maintenance, and uninstallation straightforward and easy.

New Call-to-action

Ajit Medhekar
About the Author – Ajit Medhekar

Ajit is a Senior Software Engineer at Indusa. He is a technology enthusiast who is passionate about the intersection of technology in everyday life, and possesses rich experience in software installation solutions, application packaging, Windows Installer, and Linux.


Topics: Technology