9

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

有什么方法可以将 EntityFramework 添加为 MyStuff.Data 的依赖项(以便它在 packages 文件夹中获取 EntityFramework.dll),但没有向使用它的每个项目添加引用?

4

1 回答 1

4

不,那里没有。一个选项可以是嵌入 EntityFramework dll 并将其发送到您自己的包中,并明确说明在安装过程中应在目标项目中添加哪些引用。您可以使用包的 nuspec 中的元数据元素来指定这一点。可以在此处的文档中找到更多信息:http: //docs.nuget.org/docs/reference/nuspec-reference#Specifying_Explicit_Assembly_References

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

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

于 2012-07-16T18:39:56.817 回答