【问题标题】:.Net Core 3.1 not yet supported in Azure Pipelines hosted agents? Getting NETSDK1045Azure Pipelines 托管代理尚不支持 .Net Core 3.1?获取 NETSDK1045
【发布时间】:2019-12-09 02:55:24
【问题描述】:

.Net Core 3.1 is out 很棒,但我不确定 Azure Pipelines 托管代理是否已经赶上。

我的 YAML 管道指定:

pool:
  vmImage: 'windows-latest'

dotnet restore 步骤执行此操作:

(_CheckForUnsupportedNETCoreVersion 目标) -> C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(127,5): 错误 NETSDK1045:当前的 .NET SDK 不支持面向 .NET 核心 3.1。以 .NET Core 3.0 或更低版本为目标,或使用 支持 .NET Core 3.1 的 .NET SDK。 [D:\a\1\s\StatsNZ.BESt.DataService\StatsNZ.BESt.DataService.csproj]

在 .Net Core 3.0 中运行良好。

是否有任何变通办法,还是我们必须等待 Azure DevOps 赶上来?

【问题讨论】:

标签: .net-core azure-pipelines


【解决方案1】:

Azure Pipelines 托管代理尚不支持 .Net Core 3.1?

不,Azure Pipelines 托管代理支持 .Net Core 3.1,但 Azure Pipelines 托管代理中当前未默认安装最新的 .net core 3.1.100。

你可以查看Azure Pipelines Hosted Windows 2019 with VS2019 image,默认安装的.net core最新版本是3.0.100。

要使用 .net core 3.1,您可以添加 Use .NET Core task 来安装 .net core 3.1.100:

希望这会有所帮助。

【讨论】:

  • 看起来您在 azure devops 管道方面有经验,我正在尝试将 sonarqube 实施到管道中。但它总是失败,因为 java Jdk 版本应该是 8 或 11。如何更改管道中的 java jdk 版本?
  • 我收到了 3.1.2 版本的错误 [error]sdk 版本匹配:找不到 3.1.2 链接到图片:imgur.com/a/qYeSnwV
  • 没有3.1.2 SDK,目前只是那个版本的运行时。截至本评论的最新 SDK 是 3.1.102。
  • 当我尝试使用Use .NET Core 任务使用 3.1 构建时,该任务成功。但是当它拿到Build Solution任务时,还是看不到3.1 SDK,失败了。
  • @Leo Liu-MSFT - 我没有在可用任务中看到“使用 .Net Core 任务”。我尝试了经典和 YAML,但都没有。有什么想法吗?
【解决方案2】:

在调用 dotnet build 之前添加一个安装 .NET Core SDK 的步骤。

steps:
- task: UseDotNet@2
  displayName: 'Install .NET Core sdk'
  inputs:
    packageType: sdk
    version: 3.1.100
    installationPath: $(Agent.ToolsDirectory)/dotnet

使用 ubuntu-latest 进行工作和验证。

【讨论】:

  • 我有一份安装 .NET Core SDK 3.1 的工作(我复制/粘贴您的代码)并返回:“已成功安装 NET Core 3.1.100 SDK”。下一个作业(取决于第一个)仍然使用 SDK 3.0.xx 并且失败。 alex75.visualstudio.com/Cryptocurrencies/_build/…
  • 这完全解决了我的问题,让我可以继续使用ubuntu-latest。
  • @Alex75 这里也有同样的问题,似乎只是忽略了 UseDotNet@2 任务而使用了 3.0 SDK,奇怪...
  • 奇怪,我不知道为什么这适用于某些人(包括我自己)而不适用于其他人。
【解决方案3】:

如果您使用图像“windows-latest”,您应该能够使用 dotnet 命令。我将它从 'ubuntu-latest' 更改为 'windows-latest' 并且效果很好。

【讨论】:

    猜你喜欢
    • 2019-09-08
    • 2021-01-05
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多