Bây giờ, sau khi tôi nói điều này, một số cánh quạt sẽ đi cùng và mâu thuẫn với tôi, nhưng không có cách nào để làm những gì bạn muốn làm từ Visual Studio. Có một cách để làm điều đó bên ngoài VS, nhưng trước tiên, tôi có một câu hỏi:
Tại sao bạn muốn làm điều này? Có thể bạn đang cố gắng tiết kiệm chu kỳ CPU, hoặc tiết kiệm thời gian biên dịch, nhưng nếu bạn làm những gì bạn đang gợi ý bạn sẽ đột nhiên thấy mình ở một vị trí tuyệt vời để tự bắn mình vào chân. Nếu bạn có thư viện 1 phụ thuộc vào thư viện 2, và chỉ có 2 thư viện thay đổi, bạn có thể nghĩ rằng bạn chỉ có thể xây dựng thư viện đã thay đổi, nhưng một trong những ngày này bạn sẽ thực hiện thay đổi đối với thư viện 2 sẽ phá vỡ thư viện 1, và không xây dựng thư viện 2, bạn sẽ không bắt được nó trong quá trình biên dịch. Vì vậy, theo ý kiến khiêm tốn của tôi, KHÔNG LÀM VIỆC.
Lý do điều này sẽ không hoạt động trong VS2005 và 2008 là do VS sử dụng MSBuild. MSBuild chạy với các tệp dự án và nó sẽ kiểm tra các tham chiếu của dự án và xây dựng tất cả các dự án được tham chiếu trước, nếu nguồn của chúng đã thay đổi, trước khi xây dựng dự án đích. Bạn có thể tự kiểm tra điều này bằng cách chạy MSBuild từ dòng lệnh đối với một dự án không thay đổi nhưng với một dự án được tham chiếu đã thay đổi. Ví dụ:
msbuild ClassLibrary4.csproj
nơi ClassLibrary4 vẫn không thay đổi, nhưng nó tham chiếu ClassLibrary5, mà đã thay đổi. MSBuild sẽ xây dựng lib 5 trước tiên, trước khi nó xây dựng 4, ngay cả khi bạn không đề cập đến 5.
Cách duy nhất để có được tất cả các failafes này là sử dụng trình biên dịch trực tiếp thay vì đi qua MSBuild. Xấu xí, xấu xí, nhưng đó là nó. Về cơ bản, bạn sẽ được giảm xuống để triển khai lại MSBuild dưới một dạng nào đó để thực hiện những gì bạn muốn làm.
Nó không đáng đâu.
Đây có phải là khi bạn đang tích cực phát triển và gỡ lỗi hoặc là một phần của một xây dựng kịch bản? Đối với người đầu tiên, điều này là có thể với các cài đặt phù hợp. Đối với thứ hai, nó không dễ dàng làm được. – jeremcc
Đây là lúc tôi đang tích cực phát triển/gỡ lỗi. –
Nếu bạn "Xây dựng Giải pháp", liệu nó có xây dựng tất cả các dự án hay chỉ những dự án đã được sửa đổi (hoặc một sự phụ thuộc đã được)? –