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

9
我有一个包(例如MyStuff.Data),需要EntityFramework等才能工作,但只在内部使用。我不希望每个使用MyStuff.Data的项目都引用EntityFramework(和所有其他内容),但是dll始终需要存在。
有没有办法将EntityFramework添加为MyStuff.Data的依赖项(以便它在packages文件夹中捡起EntityFramework.dll),但不需要向每个使用它的项目添加引用?
1个回答

4
没有这种选项。一种选择是将EntityFramework dll嵌入并打包到您自己的软件包中,在安装过程中明确指定应向目标项目添加哪些引用。您可以在nuspec的metadata元素中指定此内容。有关更多信息,请参阅以下文档: http://docs.nuget.org/docs/reference/nuspec-reference#Specifying_Explicit_Assembly_References 请注意,嵌入特定版本的依赖项会对所有消费者施加限制约束,这意味着作为软件包生产者,您将驱动消费者使用哪个版本的EF,这种情况并不理想。
最好的方法是尝试抽象出任何无法控制的(EF)依赖项,并将真正的实现选择留给消费者(或者您提供一个包含实现的单独软件包,以便消费者仍然可以选择并使用您的实现)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接