About Windows Installer, the .NET Framework, and Visual Studio.
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.
PingBack from http://www.artofbam.com/wordpress/?p=10268
sounds like msi4.5 to me
carl, that's hardly the case. MSI 4.5 adds the capability to chain patches in a single transaction, but you'd still see the progress bar go through several iterations as it generates the script for each patch transform on each product, then another when the scripts are executed in sequence. This still requires a chainer (either external or internal) to implement. The external UI handler for our newer patches actually does a number of things that give you a single progress bar, going from 0 to 100% only once.