Tôi duy trì việc xây dựng một phần mềm khá lớn, bao gồm khoảng 350 dự án csharp. Thời gian xây dựng của chúng tôi cho một lần gỡ lỗi được xây dựng trong khoảng 17 phút.MSBuild & TeamBuild - Lỗi BuildInParallel vì vi phạm quyền đối với tệp MSB3021
Tôi đã tìm cách cải thiện thời gian xây dựng và thuộc tính BuildInParallel trông hấp dẫn. Đặc biệt là kể từ khi chúng tôi có một máy chủ quad-core làm các bản dựng của chúng tôi, nó thực sự có thể tận dụng lợi thế của sức mạnh tính toán.
Nhưng than ôi ... Sau khi thiết lập thuộc tính, sửa đổi tệp cấu hình cho tác nhân tạo và khởi động lại, lần chạy đầu tiên thực sự trông đầy hứa hẹn, nhanh hơn bình thường, cho đến khi không thành công.
Sau khi xem nhật ký xây dựng, có vẻ như bản dựng không thành công khi cố gắng sao chép các tham chiếu được đánh dấu là CopyLocal = true thành dir ouput. Nếu C# project A và C# project B được xây dựng song song và cả hai tham chiếu cùng dll của bên thứ ba và cố gắng sao chép cùng một lúc, quá trình thứ hai để cố gắng sao chép tệp sẽ bị vi phạm quyền truy cập tệp - tệp đang được sử dụng bởi một quy trình khác.
Bất kỳ ai có kinh nghiệm này và có thể nhận được các bản dựng nhiều proc hoạt động trên Team Build?
Đây là một trong những lỗi, khó để tìm ra dự án nào khác đang được xây dựng cùng một lúc.
Tôi đã gỡ bỏ tất cả những thứ không liên quan:
54> Target "_CopyFilesMarkedCopyLocal" trong tập tin "c: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets " từ dự án " d: \ temp \ PCM \ 1.3-Maint_CI \ Sources \ Mô-đun \ Core \ Test \ UnitTest \ TestDIPS.Core.Data.Server.NUnit \ TestDIPS.Core.Data.Server.NUnit.csproj ": 54> Tác vụ "Sao chép" Sao chép tệp từ ".......... \ Bin \ 3rdParty \ Oracle \ Oracle.DataAccess.dll" thành "d: \ temp \ PCM \ 1.3-Maint_CI \ Binaries \ Debug \ Oracle.DataAccess.dll ". Lệnh: sao chép/y ".......... \ Bin \ 3rdParty \ Oracle \ Oracle.DataAccess.dll" "d: \ temp \ PCM \ 1.3-Maint_CI \ Binaries \ Debug \ Oracle. DataAccess.dll " 54> c: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets (2703,9): lỗi MSB3021: Không thể sao chép tệp " ....... ... \ Bin \ 3rdParty \ Oracle \ Oracle.DataAccess.dll "tới " d: \ temp \ PCM \ 1.3-Maint_CI \ Binaries \ Debug \ Oracle.DataAccess.dll ". Quá trình không thể truy cập tệp 'd: \ temp \ PCM \ 1.3-Maint_CI \ Binaries \ Debug \ Oracle.DataAccess.dll' vì nó đang được sử dụng bởi một quy trình khác. Hoàn thành nhiệm vụ thực thi "Sao chép" - ĐÃ FAILED. 54> Hoàn thành mục tiêu xây dựng "_CopyFilesMarkedCopyLocal" trong dự án "TestDIPS.Core.Data.Server.NUnit.csproj" - FAILED.
Xin lỗi vì câu trả lời muộn, nhưng cảm ơn bạn rất nhiều vì câu trả lời rõ ràng. Câu trả lời của bạn phù hợp với những phát hiện mới nhất của tôi, tôi gặp vấn đề với những người truy cập thử nghiệm. Tôi thấy rằng tôi sẽ phải trục xuất những người truy cập thử nghiệm hoặc sửa đổi tệp mục tiêu, đó là điều mà chúng tôi không muốn làm. Hy vọng rằng điều này sẽ được sửa trong Team Build 2010/.Net 4.0 –