title: Build entire solution but add global Conditional Compilation Symbols for just one project
body: <p>I hava a quite complex solution, containing 10 projects aside from Test projects.
  It is a network of distributed applications &amp; services that communicate using remoting; therefore having the proper referenced assemblies (&amp; versions) is crucial. That's why I want the whole thing to be compiled and schrink-wrapped in ONE build.</p>
  
  <p>One of the applications is a demo/analysis-tool that runs a subprocess of another - much bigger - application based on the user's input and displays the results; That way engineers have a tool to help tweak their settings for "the big computation". Obviously that subprocess is contained in another assembly, and a big part of te results presented to the engineers is generated by</p>
  
  <pre><code>#if ENABLE_TRACE_MATCHING
  Trace.WriteLine("Some engineering output");
  #endif
  </code></pre>
  
  <p>My problem is that Conditional Compilation Symbols in the project settings are limited to that project's assembly, and do not propagate over referenced assemblies.
  How can I configure my build in such a way that all projects will be built <em>without</em> ENABLE_TRACE_MATCHING being defined, except for the one debug/analysis-app project where all referenced projects/assemblies must be compiled with ENABLE_TRACE_MATCHING <em>being</em> defined</p>
  
  <p>I also cannot replace #if ENABLE_TRACE_MATCHING by #if DEBUG, since that would enable a whole lot of different output our engineers wouldn't know how to handle.</p>
  
  <p>Thanks in advance.</p>
  
  <p>PS: If you think my code smells, then I agree. Additionally: It's mostly not my code ;)</p>