I have been in hell with my main work laptop since Friday. On Friday I tried installing the Visual Studio SP1 upgrade.
The first time I tried the upgrade I didn’t realize that I’d need 2+ GB of free space so the installer failed.
VS SP1 apparently still has a bug where if the install fails, the roll-back fails horribly, corrupting your
.NET 2.0 install. Trying to run the VS SP1 setup or repair the .NET 2.0 gives you the cryptic error message “Error 25007.Error occurred while initializing fusion. Setup could not load fusion with LoadLibraryShim(). Error: The handle is invalid.”.
Since then I’ve spent 3 days uninstalling and reinstalling things and trying to find advice on web-sites
for how to fix the problem. Most of the advice didn’t help but I finally found a suggestion
in the end of this post that solved the problem. By deleting the c:\Windows\WinSxS\Policies directory, I could reinstall .NET 2.0 and proceed from there. What a nightmare.
I’m a little reluctant to point this out since there were some very good people on the team, but its pretty clear that some of the fundamental underlying problem is the technology called Fusion. This was an ambitious effort to fix some of the system fragility problems with the registry and dll-hell on Windows. The result can only be described as a fix that is 10x worse that the problem. The registry certainly has its problems, and most developers had figured out how to rename DLLs with strange version #s when they made incompatible changes. Things were fragile but a reasonably skilled Windows power-user or developer could fix them. With fusion the model is so much more complex and the databases are more opaque so pretty much the only people who can fix problems are the developers on the Fusion team. Its incredibly easy to get the wrong thing in the GAC (global assembly
cache) or otherwise make some minor configuration mistake that is almost impossible to fix.
Who knows, maybe this is a product opportunity. It seems like pretty soon there might be a big market
for fusion repair tools. Go for it…