title: How to use custom preprocessor directives in .Net Core
body: <p>I am trying to use a preprocessor directive in .Net core, but I can't determine the correct way to get the directive to be set:</p>
  
  <pre><code>static void Main(string[] args)
  {
      Console.WriteLine("Hello World!");
      #if MAC
      Console.WriteLine("MAC");
      #else
      Console.WriteLine("NOT MAC");
      #endif
  }
  </code></pre>
  
  <p>I have tried various permutations from the command line to get this to work, but I seem to be missing something. Here is the shell output when I run various build and run commands:</p>
  
  <pre><code>~/dev/Temp/DirectiveTests $ dotnet msbuild /p:MAC=TRUE
  Microsoft (R) Build Engine version 15.1.548.43366
  Copyright (C) Microsoft Corporation. All rights reserved.
  
    DirectiveTests -&gt; /Users/me/dev/Temp/DirectiveTests/bin/Debug/netcoreapp1.1/DirectiveTests.dll
  ~/dev/Temp/DirectiveTests $ dotnet run /p:MAC=true
  Hello World!
  NOT MAC
  ~/dev/Temp/DirectiveTests $ dotnet run
  Hello World!
  NOT MAC
  </code></pre>
  
  <p>I am using the tooling version 1.0.1 according to <code>dotnet --version</code></p>
  
  <p>Does anyone know how to properly set the directives from the command line using .net core? </p>