Skip to content

iswix-llc/iswix-tutorials

Repository files navigation

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

    • 2022 (Sorry, we've dropped support for previous versions of Visual Studio as it's just a testing time sink. VS2022 is awesome! )
    • Community Edition or higher.
  • Windows Installer XML 3.11.2 - 4.0.3.

  • WiX Toolset Visual Studio Extension for v3 support and or HeatWave Visual Studio Extension for v4 support.

    • Install WiX ToolSet Votive extension for Visual Studio 2022 to use with WiX v3 projects.
    • Install this FireGiant HeatWave extension for Visual Studio 2022 to use with WiX v4 projects.
  • IsWiX 5.0.9 or higher.

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 applications.

Tutorials and Samples

WiX v3.11.2 / Votive Classic Samples implemented in .NET Framework 4.x and WiX v3.11.2. (Votive)

WiX v4.0.3 / HeatWave Modern Samples implemented in .NET 7 and WiX 4.0.3 (HeatWave)