Fluent Wix : A Breakable Toy Project for Generating MSI Installers

Where I work we are moving toward using MSI installers for all deployments into production. We lean pretty heavily on the Wix (Windows Installer XML) project. Wix is an incredibly powerful library that allows you to do amazing things. The downside is its abuse of XML as a programming language. Anyone who knows me understands the level of hatred I have for angle bracket noise.

That is why I was really excited when I first discovered Wix# by Oleg Shilo. Wix# is a great managed interface for the Wix toolset. It offers a simple, if not verbose collection of objects that describe your installation package and options. I happily switched all of my builds over to using it and abandoned working with Wix xml directly. The downside to Wix# is its lack of complete support for IIS extensions. It also has kind of an old school flavor, a complete lack of unit test, several weird bugs and is not fully open source. Oleg hopes to eventually take the project commercial and I wish him the best of luck with it.

But, I think I can do better. I started my own project as a kind of breakable toy and made it fully open source. I’ve worked on and with Fluent NHibernate for quite a while now and really love their approach to basically generating xml files. With heavy influence from FNH and inspiration from Wix#, I have started Fluent Wix.

The goal of Fluent Wix is to provide a fluent interface over describing a deployment package. I would like the library to be usable from Powershell. I am currently focused on drilling through the Wix Schema down to laying an individual file on the file system.

If the project, interests you feel free to fork it on github and start contributing.

Follow me on Mastodon!