Tôi đã kết thúc bằng cách sử dụng cả hai. Khi thiết kế lại hệ thống xây dựng của chúng tôi, tôi đã phải đối mặt với một vấn đề khó khăn. Cụ thể, tôi không thể thoát khỏi .vcproj (và gia đình) vì mọi người chúng tôi đang sử dụng VS để cập nhật các tệp dự án, cài đặt và cấu hình. Vì vậy, không có quá trình trùng lặp và lỗi dễ xảy ra, chúng tôi không thể dựa vào hệ thống xây dựng của mình trên một tập tin mới.
Vì lý do này, tôi quyết định giữ các tệp 'proj' của VS và sử dụng MSBuild (chúng là các tệp MSBuild, ít nhất là VS2005 và VS2008 sử dụng các tệp dự án MSBuild). Đối với mọi thứ khác (cấu hình tùy chỉnh, kiểm tra đơn vị, đóng gói, chuẩn bị tài liệu ...) Tôi đã sử dụng NAnt.
Để tích hợp liên tục, tôi đã sử dụng CruiseControl. Vì vậy, chúng tôi đã có các tập lệnh CC kích hoạt các công việc NAnt, để xây dựng MSBuild được sử dụng.
Một lưu ý cuối cùng: MSBuild KHÔNG hỗ trợ các dự án Thiết lập! Vì vậy, bạn bị mắc kẹt với việc gọi DevEnv.com hoặc sử dụng Visual Studio trực tiếp. Đó là những gì tôi đã làm, nhưng tôi đã vô hiệu hóa dự án thiết lập theo mặc định từ tất cả các cấu hình giải pháp, vì các nhà phát triển thường không cần phải xây dựng chúng và nếu có, họ có thể chọn thủ công để xây dựng chúng.