Я бы рекомендовал использовать сгенерированные файлы .csproj - на самом деле для производства, я думаю, использование сгенерированных файлов .sln - хорошая идея. Я обнаружил, что вы получите выгоду, используя те же файлы решений, что и разработчики.
Помните, что файлы .sln на самом деле не являются действительными файлами проекта msbuild - они преобразуются в проекты msbuild самим msbuild, когда они используются в качестве входных данных. Tricky!
В учебных целях вы можете записать сборку .csproj и пройтись по ней, чтобы получить представление о том, что происходит. MSBuild немного более декларативен, чем nant, поэтому не торопитесь и немного поэкспериментируйте.
Наконец, я бы обернул ваши файлы .sln или .csproj в проект сценария непрерывной сборки с заданиями msbuild для сборки ваших проектов и совместного выполнения ваших модульных тестов. Таким образом, разработчикам не нужно запускать модульное тестирование каждый раз при сборке, но каждый раз, когда они интегрируют свой код, запускаются модульные тесты. И да, убедитесь, что они бегут быстро! Все, что занимает больше секунды, должно быть запущено во время запланированной (ночной?) Сборки. Скорее всего, это меньше модульных тестов и больше интеграционных тестов, написанных с помощью среды модульных тестов, если они занимают больше секунды.
Редактировать: Некоторая дополнительная информация, которую я нашел полезной - использование MSBuild 3.5 позволит вам получить целевой вывод из файла .sln, в то время как эта информация не возвращается в MSBuild 2.0 ( хотя я думаю, что это должно работать для файлов .csproj в обеих версиях). Вы можете использовать выходные данные (ваши встроенные файлы) в качестве входных данных для вашей среды модульного тестирования.