2010-07-30 27 views
8

Tôi có một giải pháp Silverlight 4 mất nhiều thời gian để xây dựng từ cả dòng lệnh VS2010 và MSBuild 4.Tại sao tác vụ MSBuild ResolveProjectReferences mất một thời gian dài?

Giải pháp chứa 42 dự án, một là một dự án ứng dụng Silverlight, một dự án ứng dụng web và phần còn lại là các thư viện lớp.

Các MSBuild tóm tắt diag cho thấy những công việc này đang dùng một thời gian đáng kể ...

29891 ms ResolveAssemblyReferences     68 calls 
115609 ms CopySilverlightApplications    1 calls 
131547 ms ValidateXaml        36 calls 
425688 ms ResolveProjectReferences     68 calls 
634031 ms Build          71 calls 

Các phụ thuộc dự án được bố trí khá tốt, và trật tự xây dựng trông hợp lý. Tôi có tất cả các dự án biên dịch vào một thư mục đầu ra duy nhất, và tất cả các tham chiếu có CopyLocal = false.

Dường như người phạm tội tồi tệ nhất là ResolveProjectReferences, nhưng tại sao phải mất quá nhiều thời gian?

Trả lời

2

Bạn đã bật phân tích mã trên bản dựng chưa? Nếu vậy hãy thử tắt nó đi. Đã có một vấn đề tương tự. Sau khi vô hiệu hóa việc phân tích mã, việc xây dựng chạy nhanh hơn gấp 5 lần.

0

ResolveProjectReferences phải xây dựng mọi dự án được tham chiếu. Vì vậy, có thể, một số dự án xây dựng nhiều lần.

Sử dụng tham chiếu tệp và quy trình xây dựng trung tâm để loại bỏ sự cố này.

i used this in a project once

chúng tôi giảm thời gian xây dựng từ 12 phút xuống còn 3 phút.

Các vấn đề liên quan