Trong dự án cuối cùng của tôi, chúng tôi sử dụng MSBuild làm ngôn ngữ kịch bản. (vâng, thực sự!) Chúng tôi cũng đã viết hàng trăm tác vụ MSBuild tùy chỉnh, cho các phần có ý nghĩa hơn trong C#. (Tôi thậm chí đã viết một nhiệm vụ MSBuild để tạo mã boilerplate cho một nhiệm vụ MSBuild. Có, nó tự tiêu thụ.)Cách tốt nhất để quản lý cây phụ thuộc trong .NET là gì?
Mặc dù tôi không đề nghị bất kỳ ai khác sử dụng cùng cách tiếp cận này, một trong những điều tôi thấy rất hữu ích là quản lý phụ thuộc được tích hợp sẵn. Như bạn mong đợi, thật dễ dàng để thể hiện mối quan hệ phụ thuộc và để MSBuild chăm sóc họ. Ví dụ: hầu như mọi bước trong phần mềm của chúng tôi đều yêu cầu phải sao chép một số tệp nhất định vào một vị trí nhất định. Bạn có thể dễ dàng viết:
Step1: CopyFiles
Step2: CopyFiles, Step1
và khi bạn thực hiện Step2
, nó sẽ chỉ sao chép tệp một lần.
Xây dựng và đáp ứng cây phụ thuộc khá phổ biến trong phần mềm. Tôi muốn nhóm MSBuild sẽ lấy mã quản lý phụ thuộc của họ, tách nó ra khỏi MSBuild, và di chuyển nó vào .NET Framework, nơi bất cứ ai cũng có thể sử dụng nó. Baring rằng, bạn nghĩ gì là lựa chọn tốt nhất để quản lý các phụ thuộc theo cách này?