项目Nuget Depdendency Hell

时间:2015-09-24 11:35:11

标签: c# dependencies nuget dependency-management

我的项目依赖于他们不使用的NuGet包,或间接需要依赖项,这里是项目结构:

- Data        -> Depends on Entity Framework
- Business
- UI

这里的问题是因为Data依赖于实体框架,这意味着Business图层和UI也必须安装此在他们的项目中。

如何将这些依赖项分开,以便只有Data层需要实体框架?

1 个答案:

答案 0 :(得分:2)

不应该是这种情况。确保以下几点:

  • 确保您的参考设置正确无误。如果您有Resharper(即使只是试用版),请在每个项目中使用“Optimize References”命令。如果您可以使用它(取决于VS SKU),请生成一个依赖关系图并查看它。

enter image description here enter image description here

  • 清理参考后,转到工具 - > NuGet包管理器 - >管理NuGet包以获得解决方案 - >已安装的包裹 - >按钮“管理”并确保取消不需要依赖项的项目。 Nuget将相应地安装/卸载。

enter image description here

  • 我建议你右键单击解决方案启用Manage NuGet Packages for Solution,如果你不想在你的TFS / SourceControl中签入Nuget-DLL,请关注these instructions

enter image description here

  • 如果你做得正确,依赖图的最小版本将如下所示

enter image description here