Installation Development using WiX

What is WiX?

WiX (Windows Installer XML) uses simple XML documents to create Windows Installer (MSI) Installations suitable for deployment on Microsoft Windows machines. As well as command line tools WiX also integrates with Visual Studio using a plug-in called Votive and allows your installation build to be incorporated into your software build using the same build concepts.

The build process uses the standard compile and link model and the WiX Toolset contains the following components to create an installation from source:

  • Candle - The WiX compiler
  • Light - The linker to build .MSI, .MSM and .MST packages
  • Pyro - The patch creation tool.

It is also possible to decompile current MSI packages into WiX source so you can easily add your current Microsoft Installer software installs to your MSBuild, TeamBuild or Visual Studio projects using the WiX Toolset decompiler component, Dark.

As well as standard MSI software installations the WiX Toolset also allows you to setup IIS web sites, create SQL Server databases and add software exceptions to Windows Firewall amongst others. The Toolset also comes with a bootstrapper or chainer that enables you to create setup bundles called Burn. Bundles typically contain multiple installation packages required to enable your software to function correctly. This can include prerequisites such as the .Net Framework, separate application components, a dictionary for example, or a suite of applications all presented to the user as a single installation.
The Burn engine allows you to host these separate packages remotely and to run a check to determine system requirements and to then seamlessly deliver only the required components to each individual user.