2012-04-26 8 views
7

Tengo un paquete (digamos, MyStuff.Data) que requiere que EntityFramework (y otros) funcionen, pero solo internamente. No quiero que cada proyecto que utiliza MyStuff.Data también haga referencia a EntityFramework (y a todos los demás), pero el dll siempre debe estar ahí.Nuget: especifique la dependencia sin que se agreguen referencias

¿Hay alguna manera de que pueda agregar EntityFramework como una dependencia de MyStuff.Data (para que seleccione EntityFramework.dll en la carpeta de paquetes), pero sin agregar una referencia a cada proyecto que lo consume?

Respuesta

3

No, no hay. Una opción podría ser insertar el dll EntityFramework y enviarlo dentro de su propio paquete, y especificar explícitamente qué referencias se deben agregar en el proyecto de destino durante la instalación. Puede especificar esto usando el elemento metadata en el nuspec de su paquete. Más información se puede encontrar en la documentación aquí: http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Explicit_Assembly_References

en cuenta que la incorporación de una versión específica de una dependencia es un factor limitante en todos sus consumidores, lo que significa que, como productor paquete, va a conducir la versión de EF sus consumidores pueden y van a utilizar ... que no es una buena situación.

Preferiblemente, intenta abstraer cualquier dependencia no controlada (EF) y dejar la opción de implementación real al consumidor (o proporciona un paquete por separado que contiene la implementación, por lo que sus consumidores aún pueden optar por el suyo y usar el suyo).

Cuestiones relacionadas