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

Nuget Error NU1605 in Azure Pipeline deployment for project reference

我一直在尝试为 Azure Functions 项目更新我的业务逻辑层 dll。当我 build/restore nuget 包时,一切似乎在我的本地机器上工作正常,但是当我使用我们的 IAC 将它向上推送以通过 Azure Pipelines 部署时,它失败并显示 nuget 代码 NU1605。

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

Function1 -Reference-> Common(for DI)
Function2 -Reference-> Common
Function1 -Reference-> BLLDLL
Function2 -Reference-> 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 尚未构建,但没有做任何事情。我确定我遗漏了一些小东西,我们的其他解决方案具有相同的结构并且没有失败。如果需要,我很乐意尝试提供更多信息,但我很困惑。

Nuget Error NU1605 in Azure Pipeline deployment for project reference

如错误信息所示:

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:检测到包降级。

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

我想通了,在我们的解决方案重组之前,我们的 csproj 文件的旧版本以某种方式返回到我们源代码的主分支并被 YAML 拾取。