.net core 3.1 Azure devops 管道在 nuget 恢复时失败

.net core 3.1 Azure devops Pipeline failed on nuget restore

我正在尝试为 .NET Core 3.1 Web 应用程序创建一个管道,并在 NuGet 还原步骤 运行 遇到问题。

错误是:

Version 3.1.100 of the .NET Core SDK requires at least version 16.3.0 of MSBuild. The current available version of MSBuild is 15.9.21.664. Change the .NET Core SDK specified in global.json to an older version that requires the MSBuild version currently available.

我的 VS 已更新到最新版本,依赖项中安装的 MSBuild 为 16.6.0,但看起来它仍然只针对(发现)15.9.21.664,我不知道为什么。

我的 csproj 项目有这些规范

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Build" Version="16.6.0" />
    <PackageReference Include="Microsoft.Build.Framework" Version="16.6.0" />
    <PackageReference Include="Microsoft.Build.Runtime" Version="16.6.0" />
    <PackageReference Include="Microsoft.Build.Tasks.Core" Version="16.6.0" />
    <PackageReference Include="Microsoft.Build.Utilities.Core" Version="16.6.0" />
  </ItemGroup>

</Project>

如果我理解正确,global.json 在核心 3+ 中被删除并被 csproj 中的内容替换因此它应该有正确的版本 16+?

我还在 NuGet 恢复之前使用步骤“使用 .NET Core SDK 3.x”,正如有人在已经讨论过的线程中指出的那样。

我的 DevOps 管道的屏幕截图:

我正在尝试进入 DevOps 和 Azure...

正如@PEK 在解决我的问题后所建议的那样:Azure 池已设置为,当我将其更改为 Azure Pipelines 并将规范更改为 window-2019 时,它已成功构建。