WiX

Enter WiX v3.7 toolset.

As prophesized, the first build of the WiX v3.7 toolset was released today. Here's what is on the docket for WiX v3.7.

New Build System.

Getting the environment right to build the WiX toolset was a nontrivial exercise. You needed the exact right version of NAnt, the appropriate Windows SDK, a version or three of Visual Studio and several other things. Then you had to run a special batch file to get some environment variables set correctly. Maybe then things would build.

Maintaining that mishmash of NAnt and MSBuild build files wasn’t much fun either.

Well, I’m happy to report that the WiX v3.7 build system is massively simplified. The build is fully MSBuild based now. If you have Visual Studio 2010 Professional (or the equivalent C# and C++ Express SKUs) you should be able to go to the root of the project and run “MSBuild.exe”. Some parts of the project will be turned off until you install more software (like the VS SDK) but you’ll get the bulk of the toolset.

There are a couple small things missing right now, like DTF.chm. I would also like to add/improve the error messages to guide new developers to a successful build configuration by simply trying to build. If you try building the WiX toolset and have issues, please open bugs so I can improve the process. It’s much better and with a bit more effort I think it’ll be really great.

Bundle Self-Update.

The WiX toolset’s bundle checks for a newer version on the website and indicates to the user when an update is available. Unfortunately, the user experience after you clicked on the Update “tile” was pretty ugly. It just threw you to your default browser to download the new bundle executable.

In WiX v3.7, there is a new option in Burn to plan an “update”. If your Bootstrapper Application detects a newer bundle is available, it can tell the Burn engine about the update then the engine will download (if necessary) the update and launch the updated install just like it was one of the packages in the chain.

In the case of the WiX toolset, when you click the Update “tile” the progress bar of the current bundle will show the download of the new bundle. When the download is complete the new bundle will be displayed and the old bundle will close. It’s a far better user experience that just didn’t quite fit in WiX v3.6.

Bundle Reference Counting.

Burn in WiX v3.6 reference counts MSI packages automatically. This works so incredibly well that you probably don’t even notice it happening. However, there is no reference counting for Bundles . If Burn is wildly successful (and we have every reason to believe it will be <smile/>) then Bundles in Bundles will become more prevalent and reference counting will be very much desired.

This is a complex feature that I’ll explain in more detail later, probably after talking about reference counting in Burn v3.6 a bit. Again, if this goes well you won’t even notice that the right thing happens automatically.

Bugs.

As we locked down WiX v3.6, there are a couple dozen bugs that were pushed to v3.7. As you would expect, most of the bugs are Burn related. I expect the bulk if not all of these bugs to be fixed in WiX v3.7.

Conclusion

A couple weeks ago I tweeted that we were in for a few exciting weeks. Hopefully, you are as excited about the changes (WiX 3.6 almost done, Outercurve assignment, license change, now WiX v3.7) as I am. I expect WiX v3.7 is going to be a very short release. We’ll discuss what comes after WiX v3.7 soon.