.net - 嵌套 nuget 包
问题描述
我有一个 nuget 包,其中包含重试策略和一些用于数据库、http 和缓存客户端的 nuget 包。这个想法是应该以有序和安全的方式访问所有外部依赖项。所有包都托管在私有 nuget 服务器中。
如果我将重试策略 nuget 包包含到各个客户端的 nuget 包中,一方面会很棒,因为仅使用一个包的最终应用程序将获得全部功能。
另一方面,基础包中的更新(在此示例中为重试策略)将引发对许多其他 nuget 包的大量更新需求,这些包被多个应用程序使用。
是否有任何既定的最佳实践?
解决方案
我个人的做法是尽可能保持 nugets 的独立性。所以依赖越少越好。
如果您的客户端 nuget 代码依赖于它(因为没有它就无法编译),无论如何您都必须添加它。
如果您的客户端 nugets 代码不直接依赖于重试策略,那么最好不要将其添加为依赖项。
这使您在将来使用客户端 nuget 时可以灵活地使用不同的重试策略。
如您所料:如果您添加它并且必须更新重试策略 nuget,那么您也必须更新客户端 nuget,以便仅使用不同版本的依赖项(尽管没有更改实际代码)。
为了将一组具有指定版本的 nugets 捆绑在一起(我认为你想要),你仍然可以创建仅包含所选依赖项且没有代码的元包/nugets。
推荐阅读
- crystal-reports - 如何防止双面打印中断?
- amazon-web-services - 无法从办公室映射到 AWS Ec2 上的共享,在家工作
- docker - 无法将环境变量传递给容器
- zimbra - zimbra 中所有传入外部电子邮件的警告横幅
- node.js - 使用useState在React中提交后如何清除字段
- asp.net-core - 将 Asp.Net Core 2.2 升级到 3.1 无法验证 HTTPS 连接
- c# - 如何使用来自弹性 REST API 的过滤器打开 Kibana 发现 url
- java - SQLGrammarException:无法执行查询:找不到列?
- scopus - Scopus API 调用以提供层次结构中的机构列表
- php - symfony 4:成功认证后,它重定向到管理区域并使用匿名令牌填充 TokenStorage