UI Custom Action Guidelines

Windows Installer provides a rich set of standard actions that handle the typical needs of an installation: installing files and folders, manipulating the registry, searching for existing resources in the registry or the file system, controlling Windows services and so-on. Custom actions are handy things for when you need to do some custom processing that isn’t covered by one of the standard actions. You can customize your UI experience by invoking an action when the user interacts with a control by publishing a DoAction control event for the control. This post describes some guidelines (and one workaround) for custom actions invoked by the user interface in a Windows Installer MSI package.

Read the rest of this entry »

Branching Wizard Sequences With WiX

Wizard dialog sequences are common in Windows Installer packages as they lead the user through a series of questions to customize the installation of a product. Welcome to the install, select the installation directory, ready to install and so-on are common dialogs present in the wizard dialog sequence. Sometimes you need to make a choice between two dialogs based on the user’s input, however:


So you’ll need to branch to different dialogs on the Next button of the Installation Type dialog (and the Back button of the Install Location dialog) based on the user’s input. This post describes the best way to achieve this branching dialog behavior in Windows Installer, using Windows Installer XML (WiX) as the authoring tool.

Read the rest of this entry »

Utah Code Camp: September 19th, 2009

I’ll be talking about Direct2D, DirectWrite and WiX at the Fall 2009 Utah Code Camp on September 19th at Neumont University.

Read the rest of this entry »

Application Installation and Patching Survey for Windows

Channel 9 Video On Deploying The C++ Runtime

The Visual C++ Team Blog has an entry about deploying the C++ runtime linking to a Channel 9 video on the topic. Since Visual Studio .NET 2005, the Visual C++ team has been updating the C++ runtime and choosing a new DLL to house that runtime to avoid “DLL hell” and other incompatabilities from updating the runtime underneath an already deployed application. If you’re using C++ and deploying your application with the runtime, you might want to watch the Channel 9 video and explore your options to choose the one that’s best for you.

Is it the Tool or the Author? Part II

Philip Hofstetter responds to my post about Windows Installer in an attempt to clarify his post.  I say attempt, because to me it looks like he just repeats his same points without saying anything different.  Philip claims that the behaviors he calls out are all attempts to work around some flaw in Windows Installer.  He claims that these poor developer habits are an annoyance to the end user when installing a package:

Read the rest of this entry »

Is it the Tool or the Author?

Philip Hofstetter writes in his blog about things that setup authors do poorly.  I don’t disagree with his observations, but I do disagree with his assertion that these problems stem from inadequacies in the MSI technology itself.  Read the rest of this entry »