I've cleaned up building projects a bit. For C++ we have been using ProjectGen to dynamically generate project files. So it would look at the source files in a directory and can build a Visual Studio or XCode or makefile etc.
For C# things haven't been as nice, i've just had build scripts calling csc with manually set directories of source files. This has mostly worked fine with Mono, but the more modern dotnet requires a project file, so I decided to clean things up and have ProjectGen generate for C# as well.