Saya akhirnya menggunakan keduanya. Ketika mendesain ulang sistem build kami, saya menghadapi masalah yang rumit. Yaitu, saya tidak bisa menghilangkan .vcproj (dan keluarga) karena kami semua menggunakan VS untuk memperbarui file proyek, pengaturan, dan konfigurasi. Jadi tanpa proses duplikasi dan rawan kesalahan besar, kami tidak dapat mendasarkan sistem pembangunan kami pada set file baru.
Untuk alasan ini, saya memutuskan untuk menyimpan file 'proj' dari VS dan menggunakan MSBuild (mereka adalah file MSBuild, setidaknya VS2005 dan VS2008 menggunakan file proyek MSBuild). Untuk yang lainnya (konfigurasi khusus, pengujian unit, pengemasan, menyiapkan dokumentasi ...) Saya menggunakan NAnt.
Untuk integrasi berkelanjutan, saya menggunakan CruiseControl. Jadi kami memiliki skrip CC yang memicu pekerjaan NAnt, yang untuk membangun menggunakan MSBuild.
Satu catatan terakhir: MSBuild TIDAK mendukung proyek Pengaturan! Jadi, Anda terjebak dengan memanggil DevEnv.com atau menggunakan Visual Studio secara langsung. Itulah yang akhirnya saya lakukan, tetapi saya menonaktifkan proyek pengaturan secara default dari semua konfigurasi solusi, karena pengembang biasanya tidak perlu membangunnya, dan jika mereka melakukannya, mereka dapat memilih secara manual untuk membangunnya.