It was a great day today.  Not just because i went to Mini-golf with my team and scored a 49 on a par 57 course, but because we finally completed our migration of the C# IDE source tree to the MSBuild system.  We've wanted to do this for quite a long time but we never had the time to do a full migration and we also kept on running into a few issues that kept causing problems.  So we worked with the MSBuild team to resolve all of them, and as of today we now build just fine with their fantastic system.

Plusses:
  1. Clean build time reduced from 6 minutes 20 seconds to 2 minutes 40 seconds.  That's 40% of the original build time!
  2. The project file is incredibly clean.  We have a simple wildcard inclusion will pulls in all *.h's and *.cpp's in our directory.  This means we don't have to strugle with keeping a project file and our on disk files in sync.  When we add a new cpp/h file anywhere in the directory (or subdirectory) MSBuild will pull it in
  3. We only have one build system that we use now.  We used to use the VS build system for command line builds (what eventually produces the final VS sku), and the VC++ build system for building within the IDE.   We did this so we could code in the IDE and get things like IntelliSense and whatnot.  This meant that we always had to keep two systems up to date.  Nothing like trying to submit a checkin through our build system and realizing a few hours later that you didn't update the command line build system properly.  Now we just have one project.  The same project builds from the command line or inside the IDE *identically*
  4. Much faster incremental rebuilds.  Because MSBuild watches actual file accesses, it can do a much better job determing what to rebuild then our old build system.  Faster incremental builds means quicker time between making changes and being able to use them. 
Minuses:
  1. Nothing
Great job MSBuild team!  This is going to be a big boon for us!