项目 Nuget 依赖地狱

Project Nuget Depdendency Hell

我对依赖于它们不使用的 NuGet 包或间接需要依赖项的项目有疑问,这是项目结构:

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

这里的问题是,因为 Data 依赖于 Entity Framework,这意味着 Business 层和 UI 也必须在他们的项目中安装它。

如何分离这些依赖关系,以便只有 Data 层需要 Entity Framework?

不应该这样。请确保以下几点:

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

  • 清理完引用后,转到工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包 -> 已安装的包 -> 按钮 "Manage" 并确保取消勾选你不需要的项目不需要你的依赖。 Nuget 将 install/uninstall 相应地

  • 如果您不想将 Nuget-DLL 签入 TFS/SourceControl[,我建议您通过右键单击解决方案启用管理解决方案的 NuGet 包,然后按照 these instructions 操作=34=]

  • 如果你做对了,最小版本的依赖图会像这样