Azure Pipeline部署中的Nuget错误NU1605供项目参考

问题描述

我一直在尝试为Azure Functions项目更新我的业务逻辑层dll。当我生成/还原nuget程序包时,一切似乎在我的本地计算机上都可以正常工作,但是当我使用IAC推送它通过Azure Pipelines进行部署时,它会失败,并显示nuget代码NU1605。

基本上,我在多个项目中都有多个功能,所以结构看起来像这样:

功能1-参考->通用(用于DI)
功能2-参考->常见
功能1-参考-> BLLDLL
功能2-参考-> BLLDLL
常见-参考-> BLLDLL

这就是控制台失败时的样子

   (Restore target) -> 

     /home/vsts/work/1/s/Function1.csproj : error NU1605: Detected package downgrade: BusinessLogic from 1.19 to 1.17. Reference the package directly from the project to select a different version. 
   /home/vsts/work/1/s/Function1.csproj : error NU1605:  Function1 -> Common -> BusinessLogic (>= 1.19) 
   /home/vsts/work/1/s/Function1.csproj : error NU1605:  Function1  -> BusinessLogic (>= 1.17)

Function1已更新至1.19,所以我不确定它在抱怨什么。 Common确实可以正确还原,我什至尝试将Common还原以首先在YAML中进行还原和构建,以为那是因为尚未构建项目DLL,但是它没有做任何事情。我确定我缺少一些小东西,我们的其他解决方案具有相同的结构并且没有失败。很高兴尝试在需要时提供更多信息,但我很沮丧。

解决方法

Azure管道部署中的Nuget错误NU1605供项目参考

就像错误消息显示的那样:

Function1.csproj : error NU1605:  Function1 -> Common -> BusinessLogic (>= 1.19) 
Function1.csproj : error NU1605:  Function1  -> BusinessLogic (>= 1.17)

因此,项目Function1.csproj直接引用了低版本nuget软件包BusinessLogic (>= 1.17),但间接引用了高版本nuget软件包BusinessLogic (>= 1.19)。这将导致错误NU1605:检测到程序包降级。

要解决此问题,我们需要将本地项目BusinessLogic (>= 1.17)的直接引用1.19更新为版本Function1.csproj,然后将此更改提交到Azure存储库。

,

我知道了,在解决方案重组之前,我们的csproj文件的旧版本以某种方式回到了源的master分支,并被YAML选中。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...