My first question is: how can you create projects?
Teamcity Professional is free for 20 build configurations per server and will make your sooooo style much easier, it has a built-in set of layouts and it is really easy to configure, run tests, etc., and this is by far the most baked CI server.
Jenkins is the next runner-up, this is Hudson's plug and very flexible with plugins
do anything, making it a little more flexible than Teamcity, but it’s not so easy to set up, code coverage is a pain that needs to be set up, and has some annoying quirks, but completely free.
if you don’t have a really strong reason to use CruiseControl.Net, do not worry, because this time was very powerful, but now it is sadly outdated and painful to use.
Regarding build customization, both Teamcity and Jenkins support MSBuild, NAnt, Rake, etc., they also support several build steps, for example, in the msbuild or Nant file. What I did in the past is just to use the .sln file to create the assembly with one build step, use the build task for unit tests, then use the built-in task to cover the code, and then use another build task to click the files.
I used TeamCity, Jenkins, TFS, and I tried using CruiseControl.Net but found it painfully awkward. In addition, Teamcity is the best, and Jenkins is the second, I would not want to use TFS, even if I had it.
If you have any questions, feel free to contact me.