We don’t normally review products on this blog; there are plenty of other content providers that do great reviews, and we want to keep the focus here on Windows Home Server development. Despite that (maybe because of it), we think this one is definitely worth your time.
Disclaimer: Packt Publishing gave us a free copy of this eBook in December 2010 and asked us to review it.
By now, it should be pretty clear that I really like WiX for building MSI packages. WiX may have a steep learning curve, but once you’re over that it’s a very powerful toolset that gives you fine-grained control over your final installer package.
The problem is that there isn’t a great deal of WiX knowledge stashed away in our shared Google-memory, and most of the text out there relates to specific solutions for individual problems. I’ve mostly taught myself, with lots of trial and error.
With “WiX: A Developer's Guide to Windows Installer XML”, Nick Ramirez has put together a consolidated, concise, and concrete walk-through of the major features in WiX 3.0 in a way I haven’t seen anywhere else.
Note: WiX 3.5 was released at the end of January this year and brings Visual Studio 2010 and native IIS 7 support to WiX. Fortunately, there aren’t any major breaking changes (that I could find!) between 3.0 and 3.5, so all the learning you do on WiX 3.0 is applicable to 3.5 as well.
Nick starts out with the very basics, and doesn’t assume any prior knowledge beyond knowing how to open Visual Studio and edit XML files. You’re guided through the install of WiX and the creation of your very first WiX installer project.
Note: Nick does call this out at the beginning of the book, but I think it’s worth restating: WiX only integrates with Visual Studio Standard Edition or higher, it does not integrate with Visual Studio Express. You can still create installers without Visual Studio Standard, however, and Nick covers using command line tools to do that in a couple of chapters.
From there, Nick moves into progressively more advanced topics. I like the way the book is structured in this way; you’re working with a functional installer after the first chapter, and you add more complex and shiny options iteratively, rather than being dumped into chapters full of reference material.
I especially liked the way Nick covers areas that cause new WiX users lots of problems:
- Installing files into the Global Assembly Cache (GAC)
- Setting file permissions and creating users
- Using custom properties and conditions
- Searching for files and registry keys on the machine during install
- Writing registry keys
- Installing and controlling Windows Services
- Localizing installers
There are plenty of code samples and screenshots in the right places, and Nick spends a good chunk of his text explaining exactly why you should use specific options or variables rather than just how to use them.
While Nick caters for WiX-newbies, there’s still plenty of information of value to developers who’ve been up to their elbows in WiX for years. There’s even new stuff for us; we’re restructuring many of Tentacle Software’s installers based on Nick’s recommendations.
The book weighs in at 316 pages, not including the index, and Packt is currently offering 15% off the retail price for the eBook version, which comes out to US$33.99 at the time of writing. You’ll make that back in the first hour by avoiding the will-sapping trawl through page after page of WiX forum threads, and you’ll save your hairline from hours of frustration.
If you’re building applications for Windows Home Server (or any Windows product), it’s critical that you get the installer right. The installer creates your users’ first and last impression of your product; if it’s crap, users will think your application is crap too.
We highly recommend “WiX: A Developer's Guide to Windows Installer XML” because it’ll help reduce the number of crap installers lurking out there on the Internet. You really don’t want to be the guy who deletes core system files when your application uninstalls.