.NET Core 2.2.0
TeamCity Professional 2019.1.2 (build 66342)
build step .NET CLI dotnet restore
error NU1605: Detected package downgrade: System.Runtime from 4.3.1 to 4.3.0. Reference the package directly from the project to select a different version.
error NU1605: MyTestProject -> MyProject -> Microsoft.AspNet.WebApi.Client 5.2.6 -> Newtonsoft.Json 10.0.1 -> System.Runtime.Extensions 4.3.1 -> System.Runtime (>= 4.3.1)
error NU1605: MyTestProject -> MyProject -> Microsoft.AspNet.WebApi.Client 5.2.6 -> Newtonsoft.Json 10.0.1 -> System.Runtime (>= 4.3.0)
本地 Visual Studio 构建运行干净,没有此类还原错误。
但是 TeamCity 构建会引发这种类型的许多错误。
我有两个问题:
- 如何可靠地解决此错误?
请注意,将包引用添加到 .csproj 不是一个好选择,因为我的构建有很多此类错误。可能需要向PackageReference
依赖关系树中的每个叶子包添加显式。
- 为什么
MSBUILD
认为这是一个错误而不是警告?
在我看来,版本约束是兼容的,因为4.3.1
同时满足约束System.Runtime (>= 4.3.1)
和System.Runtime (>= 4.3.0)
.
这不就是作者的Newtonsoft.Json 10.0.1
本意吗?
在四个不同的版本中(在四个不同的应用程序中)发生了类似类型的错误:
[restore] MyApp.csproj: error NU1605: Detected package downgrade: Microsoft.EntityFrameworkCore.Relational from 2.2.1 to 2.2.0. Reference the package directly from the project to select a different version.
MyApp.csproj: error NU1605: MyApp -> Microsoft.AspNetCore.App 2.2.0 -> Microsoft.EntityFrameworkCore.Design 2.2.1 -> Microsoft.EntityFrameworkCore.Relational (>= 2.2.1)
MyApp.csproj: error NU1605: MyApp -> Microsoft.AspNetCore.App 2.2.0 -> Microsoft.EntityFrameworkCore.Relational (>= 2.2.0 && < 2.3.0)
MyApp.csproj: error NU1605: Detected package downgrade: Microsoft.EntityFrameworkCore from 2.2.1 to 2.2.0. Reference the package directly from the project to select a different version.
MyApp.csproj: error NU1605: MyApp -> Microsoft.AspNetCore.App 2.2.0 -> Microsoft.EntityFrameworkCore.InMemory 2.2.1 -> Microsoft.EntityFrameworkCore (>= 2.2.1)
MyApp.csproj: error NU1605: MyApp -> Microsoft.AspNetCore.App 2.2.0 -> Microsoft.EntityFrameworkCore (>= 2.2.0 && < 2.3.0)
因为我几乎在同一时间开始在所有四个构建中看到这些错误,并且因为没有可能导致错误的代码提交(并且绝对不是所有四个应用程序),所以这让我相信在构建代理(与他人共享)。
或者是什么可能导致许多应用程序恢复同时开始失败并出现这些错误?