title: Mutliple Executables From Single C# Project in Visual Studio
body: <p>I currently have a single solution with a single project and this generates executable A.EXE. The project consists of dozens of C# source files, forms, etc.</p>
  
  <p>I now need to generate executables B.EXE and C.EXE as well. B.EXE will use about 95% of the code base for A.EXE (i.e. a subset of functionality). C.EXE will use about 80% of the code base of B.EXE (i.e. another subset).</p>
  
  <p>What is the recommended way to set up Visual Studio and my project/solution for this? I'm using 2010 but I think this is probably a generic Visual Studio question.</p>
  
  <p>My concerns:</p>
  
  <ul>
  <li><p>with the preprocessor there doesn't appear to be a way to change the name of the output executable. Also excluding entire files may be not be possible and I have to leave the class interfaces and define out the code?</p></li>
  <li><p>with creating projects for B.EXE and C.EXE and linking the source files I am worried that it will be too easy for the three projects to become out of sync. Suppose I add a new file foo.cs to one project I might need to remember to add it to the others as well and remember to use linking for that so the file isn't copied.</p></li>
  <li><p>I am concerned that dividing my project up into multiple assembles will make it hard to manage, debug and remember what is defined where. I fear that I will end up with a dozen confusing assemblies rather than just a handful.</p></li>
  </ul>
  
  <p>Thoughts and suggestions are appreciated. I'm sure this is a common problem.</p>
  
  <p>thanks, Andy</p>