【问题标题】:.net core 3.1 Azure devops Pipeline failed on nuget restore.net core 3.1 Azure devops Pipeline 在 nuget 还原上失败
【发布时间】:2020-10-18 19:10:41
【问题描述】:

我正在尝试为 .NET core 3.1 Web 应用程序创建管道,但在 NuGet 还原步骤中一直遇到问题。

错误是:

.NET Core SDK 版本 3.1.100 至少需要版本 16.3.0 MSBuild 的。当前可用的 MSBuild 版本是 15.9.21.664。 将 global.json 中指定的 .NET Core SDK 更改为旧版本 这需要当前可用的 MSBuild 版本。

我的 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...

【问题讨论】:

  • 查看管道的设置。您使用的是哪个代理规范?它类似于 ubuntu-16.04 或 windows-2019。尝试不同的是我的建议。
  • @PEK Azure 池设置为 并且当我将其更改为 Azure Pipelines 并将规范更改为 window-2019 时,它已成功构建。感谢您的提示,我一直在寻找依赖项的版本。
  • @PEK TomášTomHaverla 你可以添加一个答案。

标签: c# azure azure-devops msbuild azure-pipelines


【解决方案1】:

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

【讨论】:

  • 你可以accept it as answer
  • 在此处查找设置:编辑管道 -> 编辑阶段 -> 单击代理作业 -> 代理规范
  • 感谢您的建议,这也适用于我的情况。
猜你喜欢
  • 1970-01-01
  • 2020-09-28
  • 2021-02-23
  • 2019-05-19
  • 1970-01-01
  • 2021-12-28
  • 2021-08-09
  • 2022-01-18
  • 2018-09-27
相关资源
最近更新 更多