A case study in bad end user setup experience: The Visual Studio 2005 SP1 installer

Yesterday, I decided to install Visual Studio 2005 SP1 on two of my systems that I do major development work on. This turned out to be a painful mess that ate several hours of my time that day. If you ever decide to install VS 2005 SP1, plan to have an hour or two of time to waste ahead of you… (at least in my case, I learned from my mistakes of expecting a reasonable setup user experience the first time around and was better prepared for the second system that I had to install SP1 on).

Specifically, I ran into several different issues during setup. First of all, it was slow, and by slow, I mean slow. It took something on the order of 15-20 minutes just to get through the Windows Installer initialization dialog, during this time it was pegging CPU and I/O for my box, thus making it fairly unusable. The computer that I was installing VS 2005 SP1 on may not be the latest and greatest, but I should hope that it should be possible for one to design a setup package that won’t totally destroy the performance of a 1.5-year-old top-of-the-line laptop for 15 minutes during setup initialization. (It’s worth noting that the original installer for VS 2005 didn’t have this problem, nor did the installer for the Vista Platform SDK, the Vista WDK, Office 2007, or any of the other programs I’ve ever installed on my box.)

As if making my system unusable for 15 minutes wasn’t bad enough, there is a nice little confirmation dialog box that asks if you really want to install VS 2005 SP1 which occurs after you just had to spend 15+ minutes staring at a dialog that doesn’t update with progress information in any meaningful fashion. (Or more likely, after you have given up waiting and went to do something else while setup finished doing its thing. This is particularly frustrating, since given a setup program that is just sitting there grinding away without any UI feedback, as an end user you are very likely to just go read a book, strike up a conversation, or do something else besides just stare at your screen for minutes on end with nothing visibly happening. It would be okay if setup prompted you to continue before it decided to just waste 15+ minutes of your time. As it stands, resist the temptation to leave your computer completely unattended, or you’ll just come back to a dialog box that was preventing the bulk of setup from completing, meaning you’ll have even more wasted time waiting for setup to finish ahead of you.)

By this point, I was already thinking that this setup experience was downright terrible, but the worst was yet to come in this setup story of sorrow. It turns out that setup (undocumentedly) likes to use ~2.5GB or so on your system partition (even if all of your Visual Studio / Platform SDK products are installed on a different partition). Unfortunately, nobody bothered to mention this anywhere in the release notes at the time when I started my installation, and setup doesn’t even bother to check for the amount of free space ahead of time. To make matters even worse, you are most likely to run into this problem after the 15+ minute initialization period, which makes it all the more painful if it causes your setup instance to completely fail, as described below. It turns out that if setup runs out of space at a particular moment in time, you may get stuck at a abort/retry dialog asking you to free more space. However, in at least one instance of running out of space (which I hit several times in the course of trying to free up enough space on the partition that setup shouldn’t have even been touching), setup gets broken and will just refuse to continue to copy files. If you click “retry”, you’ll simply get the same out of space dialog again (regardless of whether you have actually freed up the necessary space), and your only option from that point forward is to cancel setup (which takes another 10 minutes to finish rolling back) and restart it (which will, again, involve at least 15+ minutes of waiting before a confirmation dialog). It should be noted that the second time setup failed due to out of space, it did properly recover after I told it to retry, so it seems that only certain parts of setup get into this non-recoverable state where an out of space error is really fatal.

After repeatedly hitting the out of space error, I was rather interested to find out just why setup needed 2.5GB of space on my system partition despite the fact that VS 2005 was installed on a different partition. It turns out that most of the space requirement comes from the fact that the ~450MB installer makes no less than three copies of itself in your %TEMP% directory during setup (look for 450MB .msp files in %TEMP% while it’s running), even if the original .msi was present on a local hard drive and not a removable storage medium. Furthermore, setup will then need to make a fourth copy of the .msi in your %SystemRoot%\Installer directory for permanent storage in case you need to make modifications to your VS 2005 SP1 install without having the original .msi present. Now, I am certainly no expert in MSI-based installers, but it seems to me that making four copies of a 450MB installer file in your system partition is just ever so slightly excessive…

There are certainly some cool features and bug fixes (especially relating to PGO) in VS 2005 SP1, such as an ASLR-aware linker that make it a compelling upgrade, but I give the setup experience a failing grade. It’s by far the worst that I have ever seen out of any shipping Microsoft product to date.

12 Responses to “A case study in bad end user setup experience: The Visual Studio 2005 SP1 installer”

  1. igorsk says:

    The delay on 2k3 is actually documented somewhere (afair it checks digital signatures for all of the thousands of files). But yeah, your story sounds pretty bad. I hope they’ll do something to fix it.

  2. […] … не создавал 4 копии самого себя в процессе инсталляции. Ken Johnson рассказывает в своём блоге почему инсталляция Visual Studio 2005 SP1 отнимает столько времени. Не иначе Mr. Smith из Матрицы резвится. Tag: Инструменты разработчика posted by Not a kernel guy at 9:33 pm   […]

  3. John says:

    MSI was created to install Office. Maybe it’s good at that. It certainly isn’t good at anything else.

  4. Stefan Kuhr says:

    In my case it was even worse. I installed SP1 on a machine with W2K SP4 and fortunately it was a VMWare I had properly backed up, because I ended up with two attempts to install SP1 on this machine. The SP1 setup took the liberty to temporarily use as much as 4GB on the %SYSTEMDRIVE%.

  5. I thought this buggy behaviour was felt only by me. I also installed it on two my development machines and it failed to installl. Btw, you can find my comment on VC blog: http://blogs.msdn.com/vcblog/archive/2006/12/18/visual-studio-2005-sp1-released.aspx

  6. Vadmyst says:

    I also experienced sp1 installer failure. I’ve tried twice. First in normal mode ( double-click on the installer :8-) ) and on the second using silent mode without UI and verbose logging enabled.

    On the first attempt I’ve got “invalid digital signature of
    *.msp file”. On the second try installer generated 35 megs of logs and failed in some custom action.

    Decided to wait for a fix for SP1. :8-)

  7. bw says:

    same thing here :( im out of space due to the useless copies of MSI/MSP files

    seagate and other hard drive companies must have paid a lot of money for this trick to Microsoft to cache installers (especially 450mb!!!) in C:\Windows\Installer (whoever invented this should get fired), now i have to go to the store and buy some new 120 GB drive, thank you Microsoft, you truly love developers…

  8. […] Nynaeve Adventures in Windows debugging and reverse engineering. « A case study in bad end user setup experience: The Visual Studio 2005 SP1 installer […]

  9. Alex Ionescu says:

    Same story here with the SP1 Beta… I thought it only happened in the Beta, but I’m sad to see it happened with RTM as well. I think I’ll be sticking with the beta too, I don’t want to risk uninstalling and installing RTM, I’m afraid it will badly hose the system.

    I’m still getting drops of the WDK weekly (just installed 6001 the other day) and I’m sure the linker will be there, since the WDK always has the latest bleeding-edge stuff.

  10. Yuhong Bao says:

    Try right-clicking the VS2005 SP1 setup EXE, select properties and click the unblock button.

  11. Nick says:

    […]and click the unblock button.[..]
    Again, where is this button exactly?
    Next, about copies. I also noticed this multiplication.
    I checked the first copy with (free) app. ‘Unlocker’,
    it was not even used by anything(!), and I moved it to the other partition.
    Two other copies were ‘used’ by msi and I kept them and run out of space too.
    I had 2.39Gb free + I get rid of one copy and still that was not enough!
    This means that one has to have at least 3Gb of free space to install 450Mb SP!
    Good work Microsoft guys!
    Keep on helping out Harddisk companies. BTW, do they pay you?

  12. Yuhong Bao says:

    It is a bit better if you install in quiet mode (/quiet), which gets rid of one of the %TEMP% copies and the confirmation message.