Why are you making this so hard Microsoft?
All I want to do is pass a #define on the command line to msbuild. Why does MS make this so hard? Why not have a simple /DFOOBAR option? This kind of pointless complexity drives me crazy. I'm sure some nerd at MS was super pleased with their wicked powerful solution... fine... but provide a simple solution for the thing 90% of people want to do.
Sorry, I just needed to vent.
P.S. Apparently you can do the following kludge:
set CL=/DFOOBAR
Before you call msbuild.