Chúng tôi có dự án .NET bao gồm nhiều tiểu dự án (khoảng 20). Có một số giải pháp, mỗi giải pháp chỉ chứa các tiểu dự án có liên quan đến giải pháp cụ thể.Quản lý phụ thuộc lắp ráp .NET theo tham chiếu dll thay vì tham chiếu dự án trong VS
Để cho phép các giải pháp tùy ý, các tiểu dự án của chúng tôi không bao giờ tham khảo lẫn nhau bằng các tham chiếu dự án, mà là do tham chiếu dll trực tiếp. Có rất ít tinh chỉnh của tệp csproj, để làm cho HintPath bao gồm $ (Cấu hình), do đó, Debug xây dựng các tham chiếu Debug dlls và Release builds reference dlls Release.
Tất cả các công trình lớn, nhưng có hai vấn đề lớn - một là gây phiền nhiễu và khác là thực sự cấp tính:
- VS không nhận ra tài liệu tham khảo dll cho mục đích của việc tính toán phụ thuộc. Chúng ta phải chỉ định thủ công các phụ thuộc bằng cách sử dụng hộp thoại "Phụ thuộc dự án" mỗi lần một dự án hoặc tham chiếu mới được thêm vào. Điều này thật khó chịu.
- Chúng tôi không sử dụng Resharper hoặc Visual Assist (các công cụ tuyệt vời, nhưng chúng tôi không sử dụng chúng, nó là một nhất định). Chúng tôi thích sử dụng lệnh "Duyệt qua Định nghĩa" chuẩn (có sẵn từ menu ngữ cảnh trên mã nguồn). Vấn đề cấp tính là nó chỉ thực hiện dự án chéo nếu một dự án tham chiếu đến tham chiếu dự án và nó không hoạt động khi tham chiếu là tham chiếu dll trực tiếp, ngay cả khi dự án được tham chiếu được bao gồm trong giải pháp! Đó là một bummer thực sự, bởi vì thay vì điều hướng đến nguồn nó điều hướng đến siêu dữ liệu.
Tôi đang tìm kiếm lời khuyên của những người ở đó, những người sử dụng các tham chiếu dll như chúng tôi và bằng cách nào đó đã khắc phục được hai vấn đề này. Cảm ơn.
EDIT:
Lưu ý, rằng bên cạnh những vấn đề "Duyệt đến Definition", có tài liệu tham khảo DLL thay vì tài liệu tham khảo dự án phát sinh chỉ có một chi phí thời gian trên người quản lý dự án - đó là để cập nhật các phụ thuộc dự án của mỗi giải pháp bị ảnh hưởng khi một dự án mới được thêm vào hoặc một sự phụ thuộc mới phải được giới thiệu. Các phụ thuộc của dự án này được lưu giữ trong tệp .sln và không yêu cầu bất kỳ sự bảo trì nào cho đến khi một dự án mới đến hoặc một sự phụ thuộc mới được tạo ra, điều này xảy ra không quá thường xuyên.
Chúng tôi đang sử dụng msbuild để xây dựng các dự án của chúng tôi trên máy chủ CI, sử dụng cùng một tệp .sln như VS. Có một tệp .sln chính, bao gồm tất cả các tiểu dự án.
Tôi muốn nhấn mạnh vấn đề cấp tính hơn - không có khả năng duyệt đến defintion trong dự án khác, mặc dù cả hai dự án đều nằm trong cùng một giải pháp chỉ vì tham chiếu là tham chiếu dll. Điều này là gây phiền nhiễu và nó là một mối phiền toái, không có lý do tại sao VS khẳng định về tài liệu tham khảo dự án để kích hoạt tính năng này. Các công cụ khác, như Resharper hoặc Visual Assist không có giới hạn này. Than ôi, chúng tôi không có những công cụ này và không có trong tương lai có thể quan sát được.
Để đảm bảo tôi hiểu, bạn có giải pháp có một hoặc nhiều dự án trong đó. Một số dự án này tham khảo đầu ra dll của các dự án khác trong giải pháp, mặc dù dự án được tham chiếu nằm trong giải pháp? –
Thật vậy. Nhưng cũng có những giải pháp khác, không bao gồm một số dự án được tham chiếu. Để có sự linh hoạt này với các giải pháp soạn thảo như một vui lòng chúng tôi chỉ tham khảo dlls. Nhưng sau đó chúng tôi rời khỏi dự án chéo "Duyệt để điều hướng" khả năng ngay cả khi các dự án liên quan đều được tìm thấy trong giải pháp. – mark
Vâng, tôi cũng ghét điều đó. Một giải pháp sẽ thực sự tuyệt vời. –