Proposed platform support in WiX v4.0

Update: See the meeting highlights at FireGiant for the video of the discussion.

Given that WiX v4.0 is a major-version release and will have a number of significant changes in the build environment, it’s a great opportunity to think about which versions of Visual Studio and .NET we should support. We’ve kept compatibility high in mind during WiX v3.x but it’s been eight (!) years since WiX v3.0 shipped. (Eight?! Really? Time flies.)

For WiX v4.0, our stakes in the ground are:

Native-code libraries will be built for Visual Studio 2015 and Visual Studio 2017.

Dropping older versions of Visual Studio dramatically simplifies the WiX build environment. A dramatically simplified build environment opens up new possibilities, such as taking advantage of continuous integration services like AppVeyor.

Building WiX will require the latest update to Visual Studio 2017.

See above re: dramatically simplified build environment. The official WiX build uses the latest available Visual Studio version but unofficial developer builds can use versions of Visual Studio as old as 2010. Maintaining that plumbing gets costly, especially as Visual Studio 2017 is harder to detect. I have work in progress to rely on the Visual Studio developer command prompt which lets us avoid a bunch of registry spelunking.

Running the WiX tools will require .NET Framework 4.6.1 or later.

Previously we’d talked about standardizing on .NET Framework 4.5 but requiring 4.6.1 lets us target .NET Standard 2.0, which opens up interesting possibilities for cross-platform WiX tooling. .NET Framework 4.6.1 was published to Windows Update as a recommended update in early 2016, so most machines will have at least 4.6.1 installed.

What about install time?

DTF and managed bootstrapper applications will still support .NET 2.0 (and of course will continue to support .NET 4.X as they do today in WiX v3.11).

The elephant in the room, the crusty, vulnerable elephant in the room, is Windows XP. Windows XP, in case you didn’t know, was a mildly-popular operating system in its day, and though usage dropped dramatically when Microsoft stopped supporting it with new security updates, it hasn’t gone away entirely.

We’ve maintained support for Windows XP with Burn bundles and MSI packages with WiX custom actions. Sometimes there’s a cost associated with supporting XP or in adding functionality that requires a later version of Windows. The cost is generally small but more problematic is that without a sufficient number of eyes watching bundles and packages on XP, it’s easy for us to accidentally write code that works great on even a semi-modern version of Windows but that breaks on Windows XP. That happened before, unfortunately.

We haven’t made a decision or even a decision to propose dropping Windows XP support, but there are those of us who wouldn’t shed a tear if we did. If you have compelling reasons for us to keep supporting Windows XP, please let us know. As always, we’re listening on the wix-devs mailing list and Twitter.