For complicated and boring reasons I needed to target multiple .net frameworks that would continuously integrate with an existing build environment. This meant modifying my .csproj to target more than just my currently chosen framework. This does NOT cover using compiler directives to use features not available in all chosen frameworks.
!!Warning!! If you are really looking to do this you should definitely stop and answer the question Why. I'm not entirely sure that I'm doing it for the right reasons :).
Step 1: Google
Step 2: Stackoverflow
This post was the front runner but I wish somebody had posted an actual project to play with since it took me so long to understand what was happening.
With the help of my work buddies I think I understand enough to travel at about 15mph down the MSBuild super highway of secret variables.
My logging comments tell me that I have no idea what order this stuff is running. Comments?