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.
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).
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.
My concerns:
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?
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.
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.
Thoughts and suggestions are appreciated. I'm sure this is a common problem.
thanks, Andy