I've been working on a project, and as it's grown I realize that two parts that cannot be joined together are inter-dependent.
Let's call these two parts a.exe and b.dll. b.dll provides an implementation that allows a.exe to retrieve data, but I want it to be its own standalone assembly so that it can easily be changed out to make a.exe communicate with different data sources.
However, while a.exe is required to reference b.dll, b.dll requires several functions that are an inseparable part of a.exe.
Since I've been compiling -- to test -- as I've been writing this project, a.exe and b.dll both exist, and I can compile b.dll against a.exe and a.exe against b.dll, but how would/can I ever rebuild both of these from source?
Invoke csc.exe, compile the source for a.exe and b.dll into a.exe, invoke csc.exe, compile the source for b.dll into b.dll and reference a.exe, and then invoke csc.exe one last time, compile the source for a.exe into a.exe and reference b.dll.