The WiX toolset project holds a special place in my heart. I’ve built many installers in my time using the toolset and had nothing but positive interactions with the community as a developer, but also the WiX toolset was one of the very first open source projects that came out of Microsoft. Rob and his team blazed a trail that we where then able to follow with .NET and so many other open source projects afterwards. That is why I’m especially thrilled that now I get to work more with the project as they have decided to make the .NET Foundation their home.
For those few people who have been under a rock for the past decade and didn’t know about it, the WiX toolset lets developers create installers for Windows Installer, the Windows installation engine used by many traditional desktop applications and also Windows Server installation mechanisms. The core of WiX is a set of build tools that build Windows Installer packages using the same build concepts as the rest of your product: source code is compiled and then linked to create executables; in this case .exe setup bundles, .msi installation packages, .msm merge modules, and .msp patches. The WiX command-line build tools work with any automated build system. Also, MSBuild is supported from the command line, there is an excellent Visual Studio integration along with links into Team Build / VSTS.
WiX includes several extensions that offer functionality beyond that of Windows Installer. For example, WiX can install IIS web sites, create SQL Server databases, and register exceptions in the Windows Firewall, among others. It’s used by every single .NET development shop I know.
With Burn, the WiX bootstrapper, you can create setup bundles that install prerequisites like the .NET Framework making it easier for end users to run your .NET based applications. You can also use it to create installers for applications created using other runtimes. I once quickly knocked up an installer using the WiX toolset that installed Java + Eclipse + Team Explorer Everywhere along with demo projects, test data and demo scripts just to make my demos quicker to get set up back when I was looking after the Eclipse tooling in Microsoft. Burn also lets you download packages or combine them into a single downloadable .exe.
The WiX SDK includes managed and native libraries that make it easier to write code that works with Windows Installer, including custom actions in both C# and C++. If you haven’t tried it yet then what are you waiting for – give it a go now. If there is any functionality that you want to add then get involved with the amazing community and contribute.
May the 4th be with you. Always.