ISWIX, LLC View Christopher Painter's profile on LinkedIn profile for Christopher Painter at Stack Overflow, Q&A for professional and enthusiast programmers

March 13, 2008

Examining the Tao of the Windows Installer: Rule 1

The Tao of the Windows Installer has been around for quite a while, but I figured this would be a good time to revisit this very comprehensive set of rules and add my own experiences with these rules.

Rule 1: Learn the Windows Installer Technology
The importance of this rule cannot be overstated. If you only follow one rule, this is the one to choose.
Microsoft Product Support often speak to Installer users who are installing packages which they created with a sophisticated high-level re-packaging tool, without any understanding of how the Installer actually works. While these tools are excellent at what they do and they abstract the user from the details on a day-to-day basis, the lack of Installer knowledge becomes a real problem when the package does not work as expected. Setup authoring is not simply about copying files. The Installer offers extensive functionality and complexity; understand it before you start authoring packages.
Start with this guide, then read the white papers, books, etc mentioned in the Resources section, then follow Rule 2.

The Windows Installer team has picked a very good rule for the first rule. There is certainly not a lack of installer products to choose from when developing installers. As pointed out in the first rule of the Tao, this can be a debilitating crutch for many people.

I was working for Wise Solutions when many ISVs were starting to make the switch from script-based installers to Windows Installer. If you are familiar with the Wise products, you will notice that the "Installation Expert" looks extremely similar between both products. The same is true with the InstallShield products, the wizard front-end is nearly identical. This of course made the switch easier to Windows Installer, but with the product performing all the magic in the background, many people did not grasp the intricacies of Windows Installer.

The number of calls to customer support shot up very quickly. If someone had problems with a registry edit for instance, they were accustomed to being able to examine the script and make any necessary edits. With the Windows Installer products, they are now presented with a massive relational database and not much guidance on where to start.

One of the things we used to do during our Wise training courses was have the students create an installation using ONLY the tables. This was akin to opening up Orca and creating a very basic installation (which we later did in our Inside Windows Installer course). It was very uncomfortable for most people, but that is really one of the best ways to learn. Take a step outside of your comfort zone.

I can't overemphasize this point enough. I was "fortunate" enough to be forced to learn Windows Installer the hard way. I don't think I would have the same understanding that I have today had I exclusively used the available third party tools on the market. To this day, there are things I still prefer to do in Orca (ICE validation, transforms, quick edits for testing, etc.). Give it a shot. Fire up Orca and have some fun with it.


Dan said...

Aaron, this is so true, anyone wanting a shortcut to learning Windows Installer will be disappointed. I have been at this for several years and still learn new things every day.

Some of the things that people new to Windows Installer can do to help themselves is

1. Don't try to learn this when you are on a deadline.
2. Be prepared to learn from mistakes.

ShadowWolf said...

I think Dan's Rule #1 could be more specifically stated, don't wait to learn MSI until you're on a deadline :)

But at any rate, it's the same as anything else. Starting to learn MFC using the Visual Studio Wizard is the first step to learning nothing at all.