Nuget:指定不添加引用的依赖项

Nuget:指定不添加引用的依赖项,nuget,Nuget,我有一个包(比如MyStuff.Data),它需要EntityFramework(和其他)才能工作,但只能在内部工作。我不希望每个使用MyStuff.Data的项目也引用EntityFramework(以及所有其他项目),但dll总是需要存在的 是否有任何方法可以添加EntityFramework作为MyStuff.Data的依赖项(以便它在packages文件夹中拾取EntityFramework.dll),但不向使用它的每个项目添加引用?没有。一个选项可以是嵌入EntityFramework

我有一个包(比如MyStuff.Data),它需要EntityFramework(和其他)才能工作,但只能在内部工作。我不希望每个使用MyStuff.Data的项目也引用EntityFramework(以及所有其他项目),但dll总是需要存在的


是否有任何方法可以添加EntityFramework作为MyStuff.Data的依赖项(以便它在packages文件夹中拾取EntityFramework.dll),但不向使用它的每个项目添加引用?

没有。一个选项可以是嵌入EntityFramework dll并将其发送到您自己的包中,并明确说明在安装过程中应在目标项目中添加哪些引用。您可以使用包的nuspec中的元数据元素来指定这一点。更多信息可在以下文档中找到:

请注意,嵌入依赖项的特定版本对您的所有消费者都是一个限制性约束,这意味着作为包生产者,您将驱动您的消费者可以并将使用哪个版本的EF。。。这不是一个好情况

最好是,您尝试抽象出任何非受控(EF)依赖项,并将真正的实现选择留给消费者(或者您提供一个包含实现的单独包,这样您的消费者仍然可以选择并使用您的实现)