MAKEMSI quickly and reliably creates MSI files in a non-programmatic way
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
[Bottom][Contents][Prev]: Advertising[Next]: Caching Of MSIs, patches etc
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Windows Installer FAQ (the basics)->Bootstrapper EXE Programs

Windows Installer Basics: Bootstrapper EXE Programs

Windows Installers have a ".msi" file extension which is associated to the "MSIEXEC.EXE" program (to perform the installation).

It is reasonably common for people or toolsets to create files with ".exe" extensions, these will at runtime unpack the imbedded ".msi" (and possibly other files) and then invoke the windows installer process. If that is all it did then you'd have to wonder why do it, typically they also work around some form of Windows Installer limitation.

Bootstrapper's must also support a command line which is capable of receiving (and passing on) all normal "MSIEXEC.EXE" switches), ones that don't make creation of transforms or property configuration difficult or impossible.

Bootstrapper's should not prevent someone from extracting the MSI and running it directly (the invoker may need to do some minimal preparation).

Under Vista and newer operating systems you may need to sign your EXE files for them to install correctly.

Some common reasons for a bootstrapper:

  1. Install Windows Installer support. The destination may not have Windows Installer at all or may not have the version the msi requires. In general I recommend not relying on new features from the latest version and avoiding this issue altogether.

  2. Install support for other products such as DirectX, Internet Explorer, .NET, MDAC etc.

  3. You need to install other products that are packaged as MSIs, Windows installer can't install two products (nest) at the same time.

  4. You may wish to specify logging level, set the UILevel property or do other things that must be setup outside of the actual install.

  5. You may wish to automatically apply a language transform to the MSI based on the users language settings.

  6. You could end up with a smaller package with less files. One setup EXE could contain the MSI plus many supporting files. The EXE generally holds these is a compressed format so could save space and may perform an CRC or MD5 check to ensure contents are intact before launching the install.

Creating Boot Strappers

There are many tools which create self extracting archives, some of these allow invokation of one of the files, and example is the 7ZIP command line program "7za.exe".

The Windows Installer SDK contains "msistuff" which you should have a look at.

Some boot strap links:


Some things you will need to think about:

Adrian Accinelli's response to a newsgroup post titled "Writing Custom Bootstrapper Options" (2 Feb 2008) is quite good and I'd recommend reading it. It mentions the word "manifest" which I hadn't realised was a current term (for the "pay load").


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: Advertising[Next]: Caching Of MSIs, patches etc


MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Saturday May 28 2022 at 3:11pm
Visit MAKEMSI's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.