我们已将所有项目从.net core 2.1升级到.Net core 2.2,并且在升级之前,所有项目都已在Azureure Devops管道上成功构建,但是在升级到.net core 2.2之后,Nuget恢复任务失败,并出现以下错误
018-12-17T22:20:06.8107786Z ##[error]The nuget command failed with exit code(1) and error(C:\Program Files\dotnet\sdk\2.1.402\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(137,5): error NETSDK1045: The current .NET SDK does not support targeting .NET Core 2.2. Either target .NET Core 2.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.2.
我已经更新了对所有项目的.net core 2.2引用,我们没有使用项目中的nuget.exe。
我想念什么?
更新1
根据rick的回复,我在管道中添加了.net核心任务,但仍然失败
答案 0 :(得分:1)
尝试运行dotnet restore
而不是使用nuget任务。
您可以在此处找到更多文档:Build, test, and deploy .NET Core apps in Azure Pipelines - Restore dependencies
NuGet是依赖未构建代码的流行方法。您可以通过.NET Core任务或直接在管道的脚本中运行
dotnet restore
命令来下载NuGet软件包。
修改:
看一下您正在使用的NuGet软件包,因为您收到的消息试图告诉您一些信息:
The current .NET SDK does not support targeting .NET Core 2.2. Either target .NET Core 2.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.2
您所有的项目都针对相同的版本吗?
答案 1 :(得分:1)
尝试了不同的解决方案之后,我遇到了 scott hanselman 的博客,该博客在asp.net core 2.2预览版上讨论了Azure Devops CI,但该博客讨论了相同的错误和相同的问题,方法是添加.NET Core SDK安装程序任务。
我的问题通过添加具有2.2.10版本的.NET Core SDK Installer任务得到解决。
答案 2 :(得分:1)
我使用经典管道遇到了类似的问题。当我在.NET Restore步骤中遇到以下错误时,我正在将Web应用程序更新为.NET Core 3.1。
[错误] nuget命令失败,并显示退出代码(1)和错误(C:\ Program Files \ dotnet \ sdk \ 2.2.402 \ Sdks \ Microsoft.NET.Sdk \ targets \ Microsoft.NET.TargetFrameworkInference.targets (137,5):错误NETSDK1045:当前的.NET SDK不支持以.NET Core 3.1为目标。要么是目标.NET Core 2.2或更低版本,要么是使用支持.NET Core 3.1的.NET SDK版本。 >
通过将代理池更改为较新的版本(2019),可以解决此问题,如下所示,该代理池开始于无法处理较新的SDK的版本(2017)。