We have around ~ 80 C# projects in a single Git repository.
Our CI server is TeamCity, and we use it to build upon every commit to our git master repository.
I am trying to come up with the best way to build all of the projects on the server.
These projects are currently grouped together in a few .sln files (around 20 projects each), is it a common practice to create a “master” solution file with ALL projects such that the build server will only need to build this solution?
Or is it preferable to keep some MSBuild or other script file that will itself execute the building of each solution/project whatever it sees fit?
We are also using TeamCity with about 130 projects all in the one solution. There is not fits all answer. For CI I believe the critical issue is how long it takes to build and run tests. Both on your build farm and on developer boxes. Do the simplest possible thing for efficient software development.
Mind you the tricky thing is what is fast? Speed is relative and different developers can work very different. Some like to only commit once a day for example. So it needs to be context.
Have your TeamCity build build the same as you do on your developer boxes. Less layers the better. Keep it simple.
See similar answer: Visual Studio Large Solution.