Working with Microsoft Windows Installer packages

Windows Installer is an operating system service that was developed by Microsoft to improve the installation and uninstallation of programs, make software deployment in corporate networks easier, and solve common problems such as shared dll conflicts. Windows Installer is also a set of rules that developers must follow to take advantage of the service. To use all the features, your application has to be “Windows Installer aware” - so you have to think about installation already when you plan and write your application, not after everything is complete. For example you need to call a special API to enable just-in-time installation of parts of your application. Windows Installer was formerly called “Microsoft Installer” (MSI).

If you need to package an MSI setup into a single Self-Installing executable file, or create an MSI bootstrapper (or MSI bootstrap loader), then you can use Paquet Builder.

Paquet Builder has a special Setup Execution page and custom action to run MSI setups or MSP updates/patches, optionally check for the presence of the Windows installer runtime (redistributable version) if missing, etc…

Start by creating a Package for Setup.

In the “Choose Setup program” panel, select “Install a Windows Installer package (MSI) or patch (MSP)”. Then select the MSI or MSP file you want to run:

We recommend you to enable “Use a fixed name for temporary folder”. Since Windows Installer remembers the folder where source files are available, the temporary folder should always point to the same folder. If you run the package again, Windows Installer will be able to find source files immediately in order to perform a repair or update.

It is also possible to run several MSI setups back to back or check for prerequisites thanks to custom actions.

You can use several “install MSI setup” custom actions to install several MSI files, and check whether the installation was successful with exit codes.

Running other MSI actions (administrative installation option, advertise a product)

It’s possible only through the use of the “install MSI setup” custom action.

Making Windows Installer MSI compact with 7-zip compression

Paquet Builder lets you create small packages thanks to the integrated 7-Zip compression.

To compress MSI and CAB files used by Windows Installer with 7-Zip methods (LZMA2, BCJ2…):

  1. Do not use compression for your CAB files: set CompressionLevel to none for Media (see http://wix.sourceforge.net/manual-wix2/wix_xsd_media.htm).
  2. Keep CAB files outside your MSI file.
  3. Add MSI and CAB files to Paquet Builder’s file manager. Thus, they will be compressed with 7-Zip.

This method will highly decrease the final size of your distribution, because LZMA is highly better than LZX (used in Cabinet format).

Further information about Microsoft Windows Installer is available here:

© G.D.G. Software 2018. All rights reserved.