And the prize for worst installer of 2006 goes to…
Visual Studio 2005 Professional SP1!
It’s brilliant. Here are the installation steps, along with rough times.
- Extract 460MB .msp (windows installer patch) file from the executable into the user’s temp directory. (a few minutes).
- Run the 460MB patch file. This will cause it to validate the file’s digital signature. It reads the entire 460MB file into memory, and performs the verification. About 20 minutes.
- Copy the 460MB patch file into the parent directory (not move, copy) with a random name. A few seconds
- Run the second version of the 460MB patch file. This will also validate the file’s digital signature. About 20 minutes.
- Copy the 460MB patch file into C:\Windows\Installer. There are now 3 copies of it. If you previously installed SP1 and it broke (which it probably will), it won’t overwrite the existing one, because it chose a random name in step 3. So you may have any number of these 460MB patch files lying around on your windows partition.
- “Gathering required information”. It does this for about 2 hours.
- “Configuring <product name>”. It does this for about 30 minutes.
If you don’t have about 4 gigabytes of space free on your system partition (less if you move your temp directories elsewhere), don’t install this. It won’t install, the “retry” button you get when the install fails doesn’t work, and the installer will roll back all its changes.
…Or will it? As it happens, it doesn’t. If you’re unlucky enough to have experienced this, you’ll probably find that no .NET 2.0 application will run at all. Visual studio 2005 won’t run, neither will Office 2007, etc. The error message should be “The application failed to initialize properly (0xc0150004). Click on OK to terminate the application.”.
If you get this, Microsoft’s recommended workaround is to uninstall visual studio 2005, uninstall the .NET 2.0 framework, delete the policy files, and reinstall. A nice and quick procedure! In fact, that didn’t even work for me. Visual studio 2005 wouldn’t uninstall, presumably because ngen wouldn’t work, and the .NET 2.0 framework wouldn’t uninstall because it said things were using it.
Microsoft responded with: If you run into this problem again or for other people seeing this post after a search, first run “ngen update” from the command line (in %WINDIR%\Microsoft.NET\Framework\v2.0.50757) to fix the NGEN issues.
. Unfortunately this wouldn’t work either, as ngen refused to even start up (0xc0150004 again).
At this point it was looking like a reinstall of windows might be in order, then I looked further down in the the the thread, at xumix’s post:
I managed to fix the problem:
- go to c:\WINDOWS\WinSxS
- search for 8.0.50727.163 AND 8.0.50727.762, then delete all files/folders that have this numbers in their name
- then free up space and try to reinstall the SP1
Posted by xumix on 25/12/2006 at 01:12
So I tried this, and it was instantly fixed. How interesting. I don’t think I’ll be following the last part of his advice, in fact, I think I’m going to stay away from SP1… That sucks, because I believe it fixes this bug 
Also see Visual Studio 2005 Service Pack 1, part four: recovery by Boris "Antigenius" Drajer for more information on recovery.