in

ASP.NET Weblogs

Loren Halvorson's Blog

If your only tool is a hammer...

WiX has landed

It's all over the blogs and news lately, so you'd have to be living in a cave to not have noticed that Rob Mensching has recently released his long-promised MSI toolkit called Windows Installer Xml or WiX on SourceForge. All of the buzz is centered around Microsoft's apparent about-face on open source software, but I'm truly excited about the toolkit itself.

I started working with it today, trying to incorporate MSI and MSM creation into our CruiseControl.NET and NAnt automated builds, and I have to say my first reactions are quite positive.

Incorporating it into NAnt was straightforward. I just set an environment variable named wix_home to the tool's location and called the MSI compiler (candle.exe) and linker (light.exe) like this:

<target name="installer">
  <sysinfo />
  <exec program="${sys.env.wix_home}\candle.exe"
        
commandline="MyProject.wxs" />
  <exec program="${sys.env.wix_home}\light.exe"
        commandline="MyProject.wixobj" />
</target>

At the end of this I had MyProject.msi ready to install.

Creating the MyProject.wxs file is the tricky part. In order to build a really full featured installer with UI, we're going to need much better documentation and non-trivial samples (and possibly a design tool). I can't find any out there yet, so hopefully a community of WiX resources will spring up somewhere. If anyone knows where to find samples please let me know. You can use the decompiler (dark.exe) to reverse-engineer an existing MSI, but I found the wxs file generated from a Visual Studio vdproj created MSI overwhelming. I prefer building up from simple examples instead of tearing down from complex ones.

All in all it looks great and I'd like to thank Rob for pushing this one out to the community. I'll try to post more detail on how it is to work with as I get into it a little deeper.

 

 

Comments

 

Reid Gustin said:

I'm glad to hear that integration was straightforward. I know that examples are currently the missing link, but be assured that they're forthcoming. Keep your eye on Rob's blog, for examples, or for info on where to find some. He's definitely swamped, but this is very much high on the todo list.

If he doesn't get time relatively shortly, I'll talk to him, and we'll work out a way to get some good stuff out there.
April 7, 2004 4:19 AM
 

TrackBack said:

I just had a look at WiX, a toolset to generate Windows installer packages from an XML description. After the hype about Microsoft making an internal available as Open Source Software is calming down again, I wondered what one could do with it. Buil
April 7, 2004 1:02 PM
 

Kathy Lee said:

Grr...I am finding these tools to be unusable so far. I reverse engineered my .msi file using dark and got my .wxs file, used candle to get my .wixobj file, and now light won't generate my .msi file. It's looking for some temp files with extension .ibd. I wouldn't even know where to start with writing the .wxs file myself since the walkthrough is, as you pointed out, ridiculously simplistic. We want to use this with nant to build our installers. I would just use the msi task in nantcontrib but I would rather not have to monkey with changing the .build file every time a reference is added. I totally agree that sample .wxs files are needed.
My experience in a nutshell,
Kathy
April 15, 2004 8:24 PM
 

Loren Halvorson said:

Version 2.0.1615.0 released on April 15th, 2004 has a sample that includes some UI. It can be found in the sources zip. It's a start.
April 17, 2004 3:58 PM
 

函授教育 said:

ok
June 6, 2004 9:10 AM
 

学院 said:

ok~
June 6, 2004 9:11 AM
 

sampath said:

when i used dark.exe on an existing msi file I also had the problem of .wixobj file looking for some .ibd files ex: "Binary\InstallUtil.ibd" can some one tell why these files (InstallShied uses some of these ibd files)are needed. even when the msi was created without installshield.
July 13, 2004 12:32 AM
 

Loren Halvorson said:

sampath: The extension IBD doesn't have anything to do with InstallShield. I believe it stands for "Installer Binary Data". These are just JPEG images. In this post http://weblogs.asp.net/lorenh/archive/2004/05/09/128899.aspx I mention a way to extract them using ORCA, but someone mentioned in the comments that you can also pass /X to dark (I haven't tried this).
July 27, 2004 3:27 PM
 

TrackBack said:

March 23, 2005 2:40 PM
 

TrackBack said:

March 23, 2005 2:41 PM
 

Blog of Roy Chan » Blog Archive » ?????????????????? sourceforge ?????????????????? Xen said:

January 28, 2007 2:47 AM
 

prc nursing board exam result 2007 philippines said:

prc nursing board exam result 2007 philippines

September 2, 2007 11:17 PM

Leave a Comment

(required)  
(optional)
(required)  
Add