Multi-component Installers

  • 4 minutes to read
  • edit

With the deluge of blog posts talking about the recently releases of Visual Studio 2008 and the .NET Framework 3.5, Scott Guthrie talks about the steps to uninstall the Visual Studio 2008 Beta 2 release you should follow before installing the final release.

It’s great that Scott has put together this list since it not only tells you all of the components that are installed when you install Visual Studio 2008 Beta 2 but also tells you the order to uninstall them. This post also indirectly brings to light a different problem as well.

This problem is what I call “multi-part installers”. If you’ve installed any of the recent Microsoft developer products like Visual Studio or Microsoft SQL Server or even the new Windows Live applications, you have seen and used a multi-part installer. These are single installer applications that allow you to choose multiple (and sometimes technically unrelated) applications that install as a “bundle”. Looking at Scott’s post, here are all of the potential components that could have been installed when you installed Visual Studio 2008 Beta 2:

That’s a lot of components and it’s great that I can install all of this through a single installer. In this case, I would have installed all of these components as part of the overall Visual Studio 2008 Beta 2 installation experience. The problem comes about when I need to uninstall Visual Studio 2008 Beta 2.

Since I installed all of these components under the auspices of a single installer, why do I then need to uninstall each individual component separately? This is loaded with potential pitfalls since I might not know what components were actually installed as part of the main install and in what order those components should be uninstalled.

It seems that the trend is for the install portion to become smarter while the uninstall portion has become dumber. I realize that the vast majority of time you won’t be uninstalling applications (or maybe you will…it all depends on how you use the computer), but I shouldn’t be required to know the correct order to uninstall over a dozen different applications when I installed them as part of a single product. I just want to be able to select Visual Studio 2008 Beta 2 from the list of installed applications and uninstall it, knowing that all of the component applications that were installed with it will also be uninstalled correctly.

I will actually be spending the weekend doing this on two different computers and it’s not something I’m particularly looking forward to.