首页 > 解决方案 > 嵌套 nuget 包

问题描述

我有一个 nuget 包,其中包含重试策略和一些用于数据库、http 和缓存客户端的 nuget 包。这个想法是应该以有序和安全的方式访问所有外部依赖项。所有包都托管在私有 nuget 服务器中。

如果我将重试策略 nuget 包包含到各个客户端的 nuget 包中,一方面会很棒,因为仅使用一个包的最终应用程序将获得全部功能。

另一方面,基础包中的更新(在此示例中为重试策略)将引发对许多其他 nuget 包的大量更新需求,这些包被多个应用程序使用。

是否有任何既定的最佳实践?

标签: .netazure.net-corenuget

解决方案


我个人的做法是尽可能保持 nugets 的独立性。所以依赖越少越好。

如果您的客户端 nuget 代码依赖于它(因为没有它就无法编译),无论如何您都必须添加它。

如果您的客户端 nugets 代码不直接依赖于重试策略,那么最好不要将其添加为依赖项。

这使您在将来使用客户端 nuget 时可以灵活地使用不同的重试策略。

如您所料:如果您添加它并且必须更新重试策略 nuget,那么您也必须更新客户端 nuget,以便仅使用不同版本的依赖项(尽管没有更改实际代码)。

为了将一组具有指定版本的 nugets 捆绑在一起(我认为你想要),你仍然可以创建仅包含所选依赖项且没有代码的元包/nugets。


推荐阅读