【问题标题】:Nesting nuget packages嵌套 nuget 包
【发布时间】:2020-09-11 09:14:02
【问题描述】:
我有一个 nuget 包,其中包含重试策略和一些用于
数据库、http 和缓存客户端。这个想法是应该以有序和安全的方式访问所有外部依赖项。所有包都托管在私有 nuget 服务器中。
如果我将重试策略 nuget 包包含到单个客户端的 nuget 包中,一方面会很棒,因为仅使用一个包的最终应用程序将获得全部功能。
另一方面,基础包中的更新(在此示例中为重试策略)将引发对许多其他 nuget 包的更新需求,这些包被多个应用程序使用。
是否有任何既定的最佳实践?
【问题讨论】:
标签:
.net
azure
.net-core
nuget
【解决方案1】:
我个人的做法是尽可能保持 nugets 的独立性。所以依赖越少越好。
如果您的客户端 nuget 代码依赖于它(因为没有它就无法编译),无论如何您都必须添加它。
如果您的客户端 nugets 代码不直接依赖于重试策略,那么您最好不要将其添加为依赖项。
这使您在将来使用客户端 nuget 时可以灵活地使用不同的重试策略。
正如您所期望的:如果您添加它并且必须更新重试策略 nuget,那么您也必须更新客户端 nuget,以便仅使用不同版本的依赖项(尽管没有更改实际代码)。
为了将一组 nugets 与指定版本捆绑在一起(我认为你想要),你仍然可以创建仅包含所选依赖项且没有代码的元包/nugets。