Burn, baby. Burn.

This is the blog post I've been wanting to write for a couple years. The WiX toolset finally installs via Burn in WiX v3.6. The install is ugly and buggy but it's functional. I would not recommend installing WiX v3.6 right now unless you're willing to dig into the source code to figure out what's going on. And there is a lot going on, let's take a look at some of the highlights.

  • WPF UI - the UI provided by the Windows Installer is so limiting, I wanted complete freedom to experiment with Burn. Heath Stewart did a nice job building building a managed interop layer for Burn which enabled me to easily create a WPF UI. I was amazed how much I could do in less than 1,500 lines of code. For example check out: wix36\src\Setup\UX\InstallationViewModel.cs
  • NETFX4 Pre-req - since the installation UI is managed, the .NET Framework must be installed first. Turns out we can use Burn to install NETFX before launching the managed UI to install the rest of the packages. There is still a bit of work to do here (for example, I only support NETFX4) but soon this will be a seamless reusable experience for anyone wanting to drive Burn via managed code.
  • Quick Launch - you might notice that the Wix36.exe is ~360K. The small size provides a quick download then launch experience which is significantly better than what the 25M Wix36.msi provides. Of course, you still have to download the 25M but with Burn you don't have to wait and watch for it because the download will go straight into the install.

Getting all this together over the long Labor Day weekend feels like a huge milestone for Burn. There are a couple large work items remaining (like MSP support and transaction boundaries) that I expect will keep Burn very unstable for the next month. After that, we'll focus on bugs and address the many fit-n-finish issues.

In the meantime, keep coding. You know I am!

 

20 Comments

Comment by Philip Stears on Tuesday, September 07, 2010 1:19 AM

This is fantastic news, can't wait to have a play :-)

Comment by David Nolf on Tuesday, September 07, 2010 7:02 AM

Congratulations Rob, this is a huge milestone!

Comment by Nathan Zaugg on Tuesday, September 07, 2010 11:22 AM

Awesome Rob! +1000000 you you! I'm excited to take a look.

Comment by ALive on Tuesday, September 07, 2010 2:30 PM

Rob, you're the Wizard!
Keep up the good work!

Comment by Rory Primrose on Tuesday, September 07, 2010 5:01 PM

Hi Rob,

I like the usability of the downloader, but it very limiting within a company.

I have to update a build server with the latest Wix bits, but it doesn't have net access. I also have a few teams of developers to update, each of which would have to download the full 26Mb (not going through a proxy).

It would be great if the full download was still available so people could choose how they want to get it.

Cheers,

Rory

Comment by Rory Primrose on Tuesday, September 07, 2010 5:51 PM

My interim solution for my work restrictions is to grab the cached files from my dev machine for portability around the company.

I found them on my x64 machine at C:\ProgramData\Package Cache\{98263A9B-3C3D-4BDF-940E-4F4C61C7EDA0}v3.6.0905.0\data

Comment by Sascha on Wednesday, September 08, 2010 6:02 AM

Will it be possible to use Burn without .NET dependency? It doesn't make sense to let users install .NET for the setup UI only, if the program to be installed never uses .NET.

Comment by Blair on Wednesday, September 08, 2010 9:14 AM

@Sascha: Yes, it is. There is a sample UI that doesn't use .NET in the sources at src\burn\stdux that you can copy/expand.

Comment by Gary Howlett on Friday, September 10, 2010 2:35 AM

Now we on WiX 3.6 does this mean Wix 3.5 is finished?

Comment by rtpHarry on Friday, September 10, 2010 5:32 AM

Burn? I landed here because I'm investigating WiX. Keep seeing burn mentioned but dont see any explanation of what it is. Not trying to be petty, just giving you some feedback from a fresh pair of eyes :)

Comment by Rob Mensching on Friday, September 10, 2010 8:49 AM

Gary, no. WiX v3.5 and WiX v3.6 are moving in tandem, much the same way WiX v2.0 and Wix v3.0 did several years ago, and WiX v3.0 and WiX v3.5 did a year ago. When one release gets towards the end, we always have the next release started.

Comment by Rob Mensching on Friday, September 10, 2010 8:52 AM

rtpHarry, type "Burn" into the search box in the top right corner of my blog. You'll get three or four blog posts providing significant background on Burn.

Or, you could just click on back through the archives reading everything I've written for the last year. You'll see random references to Burn all over. It's been an important part of my life for entirely too long. ;)

Comment by Igor on Tuesday, September 14, 2010 2:41 AM

First of all, thank you for Burn!!! I really want to play with it!

And I have a question not related to Burn and Wix 3.6: t do you have any preliminary date when Wix 3.5 will go to release (RC) phase?

Comment by Totoro on Wednesday, September 15, 2010 7:43 AM

Hi Rob,

It's wonderful to know that burn is on its way, but I'm having a problem with the installer I've created with it: it has several embedded msi's inside, and it gets to the "cache executable" stage, then promptly skips to the end of the installation saying this into the debug output: "Failed to cache burn from..." and the error code 5 (access denied). I can successfully copy the same executable into the same cache folder using Explorer.

Could you please give me a hint as to what could cause such behavior?

Comment by Ian on Thursday, September 16, 2010 10:52 PM

Rob,

Running Wix36.exe triggered our corporate anti-virus program.

Here's the virus info (Trojan.Spyeye): http://securityresponse.symantec.com/security_response/writeup.jsp?docid=2010-020216-0135-99

Using Symantec Endpoint Protection v11.

Comment by Christopher Painter on Saturday, September 18, 2010 12:16 PM

How does Burn know if the file it downloaded is valid?

For example, InstallShield PRQ files have /SetupPrereq/Files/Files@Checksum and I don't see anything like that in the Netfx.wxs file in WiX 3.6.

Comment by Peter Wilson on Tuesday, January 25, 2011 2:09 AM

The part I can't understand, is why work on something for so long and then have no minimal working example in the official documentation that works. I would've thought a simple example or tutorial on how to deploy the .NET framework using Burn would've been the first thing to explain. Maybe you guys are so used to 'knowing' this stuff, you've forgotten to actually explain it to guys like me. Don't get me wrong - I love your work. Wix installed on my PC perfectly well... but if I can't start using Burn within minutes of reading the Documentation then I think somethings wrong.

Comment by Peter Wilson on Tuesday, January 25, 2011 2:12 AM

Also... I'm confused because the official documentation has a subject title, "How To: Install the .NET Framework Using a Bootstrapper" but then goes on to say there is no bootstrapper for Wix. Again... why program a bootstrapper, and then the official documentation says you don't have one. Have I misunderstood something important because it feels like it. Perhaps Burn does not do what I thought it does?

Comment by Rob Mensching on Wednesday, January 26, 2011 2:49 AM

Peter, we're still working on Burn. What value is there in writing documentation if the engine does not behave the way the documentation says?

When Burn is working and we are ready for people who are not willing to dig into the source code to learn how it works then we will get the documentation improved.

Until then, if you are interested in Burn, I encourage you to read through the source code.

Comment by Peter Wilson on Wednesday, January 26, 2011 8:46 PM

Thanks Rob. Perhaps I've just been too impatient (or not fully appreciated the corporate structure behind the development process). I do love all the hard work you guys have put into Wix. I will look at the source code.

Leave a comment
optional