项目 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=]
- 如果你做对了,最小版本的依赖图会像这样
我对依赖于它们不使用的 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=]
- 如果你做对了,最小版本的依赖图会像这样