Microsoft are not very good at writing installers.
Here is a good example of an epic fail:
I want to add Visual C++ to the Visual Studio 2008 installation on our build server.
I start with the setup.exe.
This fails (after a long wait).
Some Google searches later and I find that the next step is to use the add/remove programs to trigger the same program.
This fails. Apparently a service packed visual studio cannot have a product added. This is a slow classic partial install then full rollback without a useful message.
So I remove Visual Studio Service pack 1 (which is a slow process).
I then install Visual C++
Then I attempt to reinstall the service pack. Somehow this needs 5 GB on the C: Drive (something the server I am using does not have free) the D: drive has over 80GB of free space, but no the C: drive is the only option. What the hell needs 5GB? I could install an entire operating system with full build chain in less.
So I uninstall Visual C++ and reload the service pack.
Now I am theoretically back where I started (only have lost some time).
The build machine has two build servers on it: tfs and cruise control.Net. (one is for integration testing, the other for deployment builds)
Cruise Control.Net can build our entire source tree. tfs fails on the Silverlight application.
After some more searching I find that the uninstall of VS.Net 2008 SP1 also silently uninstalled the Silverlight VS.NET service pack.
As the build machine does not have direct internet access (don’t ask – the security department is clearly insane).
So I download the service pack installer (70MB) on another machine and then copied to the deployment box.
At this point I find that the installer itself needs to download more.
This means a call to our server team to get the internet access added to the locked down box.
Finally I get the items installed.
I have several complaints:
Why is it so hard to add a product to visual studio?
Why is there no failure log in the installer?
Why must the installer use the C: drive?
Why can’t you download everything that you need to install in one hit?