NuGet软件包依赖关系自动升级

时间:2020-02-05 19:27:50

标签: nuget nuget-package

我有一个私人的NuGet软件包,正在安装在现有项目上。该项目已经包含私有NuGet软件包所需的一些依赖项,但版本低于私有软件包所需要的依赖项。当我尝试安装私有软件包时,安装会引发错误(无错误号)

打包还原失败。回退包更改 “ ConsoleApp1”。

在包管理器输出中,它正在报告

检测到的软件包降级

由于它所引用的软件包是NuGet.org上的公共软件包,因此我希望至少在安装过程中提示您升级依赖关系,而不是出错并回滚。我知道项目中尚未包含的软件包会自动安装,并且可以在日志中看到。

我看过其他文章,从忽略警告/错误到执行升级的预构建脚本(这不是安装新软件包的选项)

是否可以指示软件包管理器将现有软件包自动升级到依赖列表定义的最低版本?

1 个答案:

答案 0 :(得分:0)

不害怕。

要解决的并不是一个微不足道的问题-假设它使用了您建议的方法,并且您的项目当前引用了create view public.constraints(constraint_catalog, constraint_schema, constraint_name) as ( -- Start at the top of the hierarchy ... select constraint_catalog, constraint_schema, constraint_name from information_schema.table_constraints ); select * from public.constraints; v1.0.0和packageA v1.0.0。

您添加了一个依赖于packageB v2.0.0的新程序包。

它提示您将package A从1.0.0升级到2.0.0,以避免降级。 但是packageA 2.0.0在2.0.0上对package A有了新的依赖性,这会导致您对该软件包的降级。

每个新的升级依次可以触发新的升级。您还可以设计甚至无法升级其他软件包以使其全部正常工作的方案。最重要的是,所有这些都需要从您的包源中获取大量信息。

由于没有一个明确的通用方法来解决此问题,因此该工具使您无法完成自己想做的事情。