You asked. We answered. One source of problems for Visual Studio 2005 Service Pack 1 was that VS 2005 SP1 targeted multiple products, and if you had multiple target products installed – most commonly Visual Studio 2005 and SQL Server 2005 that uses our IDE – multiple instances of dialogs would spawn. Some people thought SP1 was installing again and canceled successive patch installs. This meant that some files in other target products weren’t patched, which could lead to any number of problems depending on which files weren’t patched.
The problem was that our patch installer was a chainer but not an external UI handler like you see during initial install of the product. The patch appeared to run multiple times because a patch is applied to products in separate transactions for each target product, and a combined chainer and external UI handler is necessary to track progress across multiple product transactions.
For Visual Studio 2008, we have implement a combined chainer and external UI handler to track and display progress across multiple transactions, as shown in the sample screenshot below.
In future posts I’ll discuss more features of our patch chainer and external UI handler, as well as how to design chainers and external UI handlers to account for all scenarios supported by Windows Installer.