2012-04-26 31 views
7

Tôi có một gói (ví dụ, MyStuff.Data) yêu cầu EntityFramework (và những người khác) làm việc, nhưng chỉ trong nội bộ. Tôi không muốn tất cả các dự án sử dụng MyStuff.Data cũng tham chiếu EntityFramework (và tất cả những người khác), nhưng dll luôn luôn cần phải có.Nuget: chỉ định phụ thuộc mà không có tham chiếu được thêm

Có cách nào tôi có thể thêm EntityFramework dưới dạng phụ thuộc của MyStuff.Data (để nó chọn EntityFramework.dll trong thư mục gói), nhưng không có tham chiếu nào được thêm vào mỗi dự án tiêu thụ không?

Trả lời

3

Không có. Một tùy chọn có thể là nhúng dll EntityFramework và gửi nó bên trong gói của riêng bạn và nêu rõ các tham chiếu nào sẽ được thêm vào trong dự án đích trong khi cài đặt. Bạn có thể chỉ định điều này bằng cách sử dụng phần tử siêu dữ liệu trong gói nuspec của bạn. Bạn có thể tìm thêm thông tin trong tài liệu tại đây: http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Explicit_Assembly_References

Lưu ý rằng việc nhúng một phiên bản phụ thuộc cụ thể là hạn chế hạn chế đối với tất cả người tiêu dùng của bạn, điều đó có nghĩa là bạn sẽ sử dụng phiên bản EF mà người tiêu dùng của bạn có thể và sẽ sử dụng ... đó không phải là tình huống tốt.

Tốt hơn là bạn cố gắng loại bỏ bất kỳ sự phụ thuộc nào không được kiểm soát (EF) và để lựa chọn thực hiện thực tế cho người tiêu dùng (hoặc bạn cung cấp một gói riêng có chứa việc triển khai, vì vậy người tiêu dùng của bạn vẫn có thể chọn tham gia và sử dụng máy của bạn).

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