Pitfalls of Automatic Update Utilities

Usually I’m a proponent of Microsoft. I generally like their developmet tools, and enjoy writing in .NET because of all the useful things I can accomplish with it. But today they pissed me off a little bit. I was trying to figure out how to interface with Exchange Server 2003, so I downloaded their SDK for 2003 (http://www.microsoft.com/downloads/details.aspx?familyid=09B45603-2147-424E-81E5-601FBFDFDF0D&displaylang=en). One of the sample projects is an Issue Tracking System.

The install went ok (it creates a virtual directory for you, and copies the files to your inetpub folder). However, when I opened the site in Visual Studio 2005 it was prompted with the conversion utility to upgrade it to the new 2005 format. “No problem” I thought, go for it. I navigated to the IIS directory (using the Visual Studio IIS browser in the conversion utility) and clicked ok.

I was letting it run and glanced down at the status bar to see files names from a lot of my other projects flying by. “Oh crap!”, said to myself…actually that wasn’t exactly what I said. I clicked cancel, which didn’t work. I guess they didn’t use enough application.doevents in their code.

Long story short, a lot of my applications that used to be stored in my inetpub folder are now hosed. Thankfully all the real project are under source control so I just have to pull fresh copies out, but a lot of little test projects are now broken.

Maybe I have something unique about my environment which caused it to attempt to convert my entire inetpub folder, or maybe I fat-fingered the “open from IIS application” browser and selected the IIS root. Whatever it was it’s a very good reminder lesson that:

  • Conversion utilities are dangerous things
  • Source Control is awesome
  • Backup procedures are critical

Now I’m off to try and salvage as many applications as I can……