If I could think of only one reason why Windows needed a transactional file system it's this: Windows Update and the software installation process.

I just picked up a temporary laptop as part of my new job. It came with an unpatched XP SP2 installation and Office 2007. The C: drive was kinda full, but there was plenty of space on the second disk.

So off I went and installed VS.NET 2003, VS2005, MSDN docs, SQL2005, etc on the D: drive, made sure they were all working and then went to Windows Update to get all the latest patches and go through the pain of umpteen reboots during the process.

Well Windows Update decided that there were 97 (yes, 97!) critical updates it needed to install so I clicked on the "go" button and walked away.

Fast forward half an hour and I come back for a look and see that Windows is complaining that I'm running out of disk space. I hurriedly remove the C:\Windows\$NTUndelete folders to free up some room and get through to the end of the process at which point Windows Update tells me that while it installed almost everything properly, it couldn't install .NET 1.1 SP1 or VS2005 SP1, and could I please reboot if I don't mind, thank you very much.

What's a guy to do? I reboot. But on start up I get all a whole lot of 0xc0000034 errors in programs that (as it turns out) rely on the .NET 2.0 framework. Why? Well, probably because Windows Update poo-ed itself and ran out of disk space in one of the updates.

Looking for information about the error and Google was surprisingly unhelpful, except for one small throwaway forum reply about corrupted .NET frameworks. "Hmmm" says I and so I tried running VS2005 and I got this lovely little gem Error. Error occurred while initializing fusion. Setup could not load fusion with LoadLibraryShim().

Well fortunately Google was a bit more helpful this time and turned up this post. The answer is not the one marked but a bit further down Filipe Janela mentions trashing the policies directory to get things working. Dangerous I know but when you're desperate... I did it and things looked OK for a while until VS2005 then complained that This application has failed to start because the application configuration is incorrect. I'll add that to the list of not-exactly-useful error messages I've seen.

So what next? I could try the ol' uninstall/reinstall trick right? Which I did, however the uninstall failed for some other equally bizarre error. The weird thing is that trying to uninstall again didn't even get started because some files were missing.

More googling turned up a post about Side-by-Side issues (interesting read!). So, thinking the .NET frameworks might be conflicting given the busted Windows Update, I tried removing all the .NET frameworks and reinstalling them. But that didn't work.

Finally, In last-attempt try-anything mode I stuck the VS2005 disk back in and ran setup. Even though Windows and control panel still thought VS2005 was installed, the setup program didn't. It let me run through setup as a fresh install and eventually I got VS2005 back and working again.

AND IT ONLY TOOK 6 HOURS TO RESOLVE!!!

Thanks Microsoft for your well written, handle all errors, Windows Update process!

If ever there was a reason for a transactional file system then this is it. Aborted or failed installations due to lack of disk space, file locks, or other errors. A clean roll back of all changes is required so you don't leave a machine in an unknown and possibly nonworking state. I was thiiiis close to trashing my whole machine and starting again.

Thankfully Vista has transactional file system support now and I can't help but wonder if Windows Update was the reason for it.