title: Check the operating system at compile time?
body: <p>I am running Windows 7 64-bit operating system on my development machine, using .Net 4.5 and MS Visual Studio 2012.  I have several C# projects that use the System.Threading.Task namespace.  I want to be able to build these projects on a server that all of our developers have access to.  The problem is that that server is running Windows Server 2003, which does not support .Net 4.5, and the System.Threading.Task namespace does not exist in versions of .Net before 4.5.  </p>
  
  <p>I can set up new build configurations with a compile-time constant that I can check to determine which namespace to include, but before I do that, I'm wondering if there's already a pre-defined constant I can use.  I doubt it, since as far as I know compile-time constants can only be defined or not defined in C#, unlike C++ in which they can have specific values. </p>