2012-04-26 10 views
7

Mam pakiet (powiedzmy MyStuff.Data), który wymaga EntityFramework (i innych) do pracy, ale tylko wewnętrznie. Nie chcę, aby każdy projekt używający MyStuff.Data odnosił się także do EntityFramework (i wszystkich innych), ale biblioteka DLL zawsze musi tam być.Nuget: określ zależność bez dodawania referencji

Czy istnieje sposób, w jaki mogę dodać EntityFramework jako zależność MyStuff.Data (tak, aby wybrać EntityFramework.dll w folderze packages), ale bez odniesienia jest dodawany do każdego projektu, który je zużywa?

Odpowiedz

3

Nie, nie ma. Opcją może być osadzenie biblioteki DLL EntityFramework i wysłanie jej wewnątrz twojego własnego pakietu, i jawne określenie, które referencje powinny zostać dodane w projekcie docelowym podczas instalacji. Możesz to określić za pomocą elementu metadanych w pakiecie nuspec ciebie. Więcej informacji można znaleźć w docs tutaj: http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Explicit_Assembly_References

Zauważ, że osadzanie konkretną wersję zależność jest ograniczenie ograniczenie na wszystkich konsumentów, co oznacza, że ​​jako producent pakietu, będzie jazda, która wersja EF, których Twoi konsumenci mogą i będą używać ... co nie jest dobrą sytuacją.

Najlepiej, jeśli spróbujesz wyeliminować wszelkie zależności niekontrolowane (EF) i pozostawiasz rzeczywisty wybór dla konsumenta (lub dostarczasz oddzielny pakiet zawierający implementację, aby Twoi konsumenci mogli nadal się zgłaszać i korzystać z twojego).

Powiązane problemy