IsWiX Tutorials Overview

These tutorials will walk you through how to build Windows Installer (aka .MSI) setup packages using the WiX Toolset (aka Windows Installer XML aka WiX) and Industrial Strength Windows Installer XML (aka IsWiX) for a variety of application types.

Prerequisites

These tutorials require you to download and install:

  • Microsoft Visual Studio
    • 2019 or higher. (2022 highly reccomended.)
    • Community Edition or higher.
    • Express Edition will not work.
  • Windows Installer XML 3.11.2 or higher.
    • Although IsWiX has project templates for WiX v4, WiX v4 is an alpha status experimental rewrite of WiX and will not work.
  • WiX Toolset Visual Studio Extension
    • Install one extension for each version of Visual Studio you wish to use.
  • IsWiX 4.11 or higher.
    • Will automatically target all of your Visual Studio installations without the need for seperate extension downloads.

Backstory

Windows Installer is a platform service created by Microsoft in 1999. Originally created with the needs of Microsoft Office in mind, it created a standardized way for vendors to package applications for Windows. It was designed to be declarative (in the 90s that meant database driven), transactional, transformable with standardized command line driven installation arguments and logging. Many tools have been created to author MSIs including InstallShield, Advanced Installer, InstallAware, Wise, Visual Studio deployment projects and others.

WiX is an open source project started by former Microsoft employee Rob Mensching while he was still at Microsoft. The first release was back in 2004. WiX is essentially an XSD based Domain Specific Langauge and related compiler chain tools that allows a developer to generate Windows Installer Databases from XML documents. WiX is a very powerful toolset that serves as a thin abstraction of the underlying Windows Installer and emphasis a 'code-first' strategy. This has the unfortunate drawback of a steep learning curve and hand authoring of many, many lines of XML.

IsWiX is an open source project started by Windows Installer / InstallShield / WiX expert Christopher Painter while he was working at Textron - Overwatch Systems division in 2010. The project was initially funded by Textron OWS as part of a business process transformation effort. Although Textron OWS always wanted to publish the project as open source, the sensitive nature of our business made that difficult. After a very successful pilot, the IP rights were reassigned to Christopher Painter so that he could share it with the world. InstallShield was overall a good product but Textron OWS had strained it way beyond what InstallShield was ever designed to do. InstallShield's binary or DTD base XML project files were not branch/merge friendly and the licensing model did not encourage agile/lean workflows. WiX could solve these problems except that Textron OWS's team of 12 build and release engineers would have had to train 250+ developers how to develop in it. IsWiX was born to give developers an InstallShield like experience for the core installer changes they would need to make. Basically think 'minimum viable product'. All other changes would be done by MSI experts in WiX by hand. Later the product was expanded to include Visual Studio template to simplify the development of desktop applications, windows services and web application. The tutorial you are reading today is how to handle the desktop application scenario.

Tutorials

Desktop Application A simple WPF application with a shortcut on the desktop.

Web Application A basic ASP.NET website installed on IIS.

Windows Service A basic Windows Service that installs and starts without using InstallUtil.