Trong Giải pháp Explorer, nhấp chuột phải vào nút gốc ->Trình quản lý cấu hình.Bạn cần xác định cấu hình toàn bộ giải pháp để hướng dẫn từng dự án bên trong xây dựng dưới dạng 32 bit (Lưu ý: có thể bạn đã có một dự án nếu bạn đã từng đặt ít nhất một dự án để xây dựng dưới dạng 32 bit.) Để biết hướng dẫn từng bước, hãy xem bài đăng trên blog MSDN Solution Configurations.
Sau đó, bạn chỉ định "nền tảng" và "hương vị" mong muốn trong các tệp Team Build.proj
/.targets
của mình. Ví dụ:
<ConfigurationToBuild Include="Release|x86">
<FlavorToBuild>Release</FlavorToBuild>
<PlatformToBuild>x86</PlatformToBuild>
</ConfigurationToBuild>
Bạn có thể chỉ định nhiều hơn một trong các phần thuộc tính này để tạo nhiều kết hợp. Tôi sẽ sao chép/dán chuỗi "Release | x86" (hoặc bất kỳ thứ gì giống như) trực tiếp từ tệp .sln
của bạn để đảm bảo nó khớp chính xác - bạn không thể lấy trực tiếp từ Solution Explorer.
Về nhận xét của bạn:
MSBuild đánh giá tài sản là khá phức tạp vì nó pha trộn phong cách khai báo và cấp bách. Xem bài đăng trên blog MSBuild Property Evaluation để biết chi tiết. Tôi không muốn dựa vào sự tinh tế của nó.
Đúng là thuộc tính được chỉ định trên dòng lệnh sẽ ghi đè mọi thứ khác, nhưng Team Build có một lớp phức tạp khác. The ComputeConfigurationList task is called repeatedly via a recursive MSBuild invokation, not as an ordinary task.Cách nó kéo tắt này là để lấy các thuộc tính thông thường như PlatformToBuild
và bọc chúng trong một tập hợp các thuộc tính toàn cầu được gọi là ConfigurationToBuild.PlatformToBuild
(vv) được tạo ra khi đang bay, một lần cho mỗi cấu hình. Điều này làm cho công cụ Team Build linh hoạt hơn nhiều trong nội bộ, nhưng nó cũng làm cho việc tấn công hành vi dòng lệnh bạn muốn trở nên khó khăn hơn.
Bạn có thể thử đặt ConfigurationToBuild.PlatformToBuild
trực tiếp trên dòng lệnh - nó có thể hoạt động, tôi không chắc chắn. Nhưng nó chắc chắn sẽ ngăn bạn không bao giờ xây dựng nhiều hơn một cấu hình trong một định nghĩa xây dựng duy nhất. Vì lý do này, tôi gắn bó với lời khuyên của tôi ở trên.
Nguồn
2009-07-02 14:30:53
Không phải câu trả lời tôi đang tìm kiếm nhưng cuối cùng là đơn giản nhất/an toàn nhất. –
Nếu đây không phải là câu trả lời bạn đang tìm kiếm, tại sao nó được chấp nhận? ;-) @ Câu trả lời của Nader phải là câu trả lời được chấp nhận. :-) – darrenp