Windows Installer XML (WiX) toolset
Search

The ClickThrough Project

Low impact web deployed applications with auto-update using the Windows Installer.

Rob Mensching

Microsoft Corporation

March 2005

Summary: The ClickThrough Project will enhance the WiX toolset to improve Windows Installer support for web distributed applications. In particular ClickThrough adds tools to enable developers to create low impact Windows Installation packages, tools to aid the web deployment for those packages and tools to keep the application up to date.

Introduction

The Windows Installer is a powerful installation technology. It is capable of deploying large applications, like Microsoft Office, into enterprises with thousands of users. Unfortunately, this power requires developers to understand quite a bit of complex technology to be successful. Also, the Windows Installer was developed before the Internet technologies were well understood and thus has a very rudimentary web deployment story.

ClickOnce is a new deployment technology developed for the next release of the .NET Framework (v2.0). It is designed to deploy applications from the web, keep the applications up to date and minimize the impact those applications can have on the system. Deep integration into the next version of Visual Studio eases the developer burden when creating ClickOnce deployments. Unfortunately, ClickOnce can only deploy files and therefore is not suitable for many applications' deployment needs. Also, ClickOnce does not integrate with the standard enterprise deployment technologies forcing administrators to manage applications via a new method.

Many developers find themselves wanting the best features from both of these deployment technologies.

The ClickThrough Project will provide the missing tools needed to enable the best of both deployment technologies using the Windows Installer. ClickThrough builds on the superior installation technology of the Windows Installer to support more applications than is possible with ClickOnce. The WiX toolset will be leveraged so developers can easily create Windows Installer packages that have minimal impact on the system. Finally, ClickThrough will include the tools necessary to improve the web deployment of Windows Installer packages and enable applications to auto-update themselves.

Scenarios

The ClickThrough Project has scenarios that affect developers, end users, and IT professionals. The following scenarios will use the standard Visual Studio and Windows Personas: Mort (beginner developer), Elvis (intermediate developer), Toby (influential user), and Ichiro (IT professional).

Mort finishes writing several command-line tools that display, compress, and format XML files. He wants to package up his tools so that during install the tools are added to the PATH environment variable. Mort discovers that ClickOnce does not support environment variables and looks to the Windows Installer. He finds the WiX toolset that includes the ClickThrough Packager. Mort starts stepping through the wizard interface. He answers the questions about where to find his command-line tools' binaries, if there are any per-use registry keys used by his tools, if he wants to configure the user's environment variables, if he would like to configure any auto-update settings, and if he has an Authenticode signature for his tools. After clicking finish in the ClickThrough Packager, Mort finds that an executable signed with his Authenticode signature is produced. The executable contains the MSI file that will install his application that can be downloaded from a web. Mort goes to his blog, posts his new package there, and writes about how easy it was to create his XML tools using Microsoft technology.

Elvis writes a plug-in for Outlook (or Word or Excel or Visual Studio or Explorer or name any other Microsoft platform). Since his plug-in requires COM registration Elvis cannot use ClickOnce. This is fine because Elvis wants his plug-in to be deployable in large enterprises using IntelliMirror anyway. Elvis knows he needs to use the Windows Installer but wants an easy web deployment package as well. Elvis finds the ClickThrough Packager in the WiX toolset and follows the same simple steps that Mort did to get a setup package that not only works with IntelliMirror but can be downloaded from the web as well. Elvis tests his package out then starts looking for a bunch of CDs so he can burn his application package on them and mail the CDs off his distributors.

Toby goes to Downloads.com looking for new free games. He picks a game that looks interesting by clicking on the download link. Internet Explorer prompts him if he wants to trust the signers of the executable before downloading and quickly installing the game. Toby launches the game from the game's shortcut and plays for an hour before supper time. After supper, he comes back and launches the game from the shortcut again. Before the game launches, Toby is presented the option to download a new version of the game. He clicks "Yes" and a new version of the game is downloaded and installed. The install removes the previous version of the game before launching the new version of the game. Toby plays the game enjoying all of the new features.

Ichiro is responsible for deploying several applications to the users in his enterprise. One of the applications is Elvis's Outlook plug-in. Ichiro looks for an MSI file that he can use to deploy via IntelliMirror. After looking for a bit, he finds that Elvis's package has command-line switches to extract the MSI package. Ichiro happily goes through his standard process for deploying MSI files via IntelliMirror. Ichiro happily checks off another item from his TODO list and moves to the next task.

Ichiro also needs to deploy Mort's XML tools to the development department. Ichiro knows the developers don't like it when software is automatically deployed to their machines. Ichiro knows that the developers will complain to their management if he uses IntelliMirror. He is busy and would like to avoid the hassle and wonders how best to get this package to the developers. Ichiro realizes that he could copy Mort's setup package to one of the web servers in the development department and let the developers download it when they want. He also realizes that newer versions of the package could be copied to the web servers later and the developers could easily upgrade at their leisure. This web deployment option fits Ichiro's needs perfectly so he copies the setup package to the development department's web server and sends an email to the developers with a link to the setup package.

ClickThrough Tools

ClickThrough will provide three tools to enable the web deployment of low impact applications using the Windows Installer. The first tool is a development tool to capture an application into a per-user Windows Installer package. The second tool wraps the packages created by the first tool to enable easy deployment over the web. The third tool is actually contained inside the package and is used when launching the application to detect if there is a new update available.