【问题标题】:Build .NET Core 3.0 on Azure Pipelines在 Azure Pipelines 上构建 .NET Core 3.0
【发布时间】:2019-06-13 05:51:39
【问题描述】:

是的,我知道 .NET Core 3.0 仍处于预览阶段。我想在 Azure Pipelines 上构建它。

有没有简单的方法可以做到这一点?

目前出现此错误:

/usr/share/dotnet/sdk/2.2.105/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(137,5):错误NETSDK1045:当前的.NET SDK不支持面向 .NET Core 3.0。以 .NET Core 2.2 或更低版本为目标,或者使用支持 .NET Core 3.0 的 .NET SDK 版本。

编辑

我找到了关于这个的官方文档:

https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops

【问题讨论】:

  • 更新:现在是核心 3.0 发布 3 周后,Azure (DevOps) Pipelines 尚未更新为核心 3.0 构建支持。除非您检查“includePreviewVersions”,否则“UseDotNet@2”任务不会安装核心 3.0。

标签: .net .net-core azure-devops azure-pipelines


【解决方案1】:

您可以在管道期间使用 .Net Core SDK Installer 任务安装 .Net Core SDK 3.0:

- task: UseDotNet@2
  displayName: 'Install .net core 3.0 (preview)'
  inputs:
    packageType: sdk
    version: '3.0.100-preview6-012264'
    installationPath: $(Agent.ToolsDirectory)/dotnet

我指定了.net core sdk 3.0的最后一个预览版,你可以放一个更早的版本,你可以在版本列表中找到here

另一个选项是指定3.0.x 并启用预览版本:

version: 3.0.x
includePreviewVersions: true

安装结果:

【讨论】:

  • 酷,你比我早一秒。这确实是最好的解决方案,最新版本可以在这里找到:dotnetcli.blob.core.windows.net/dotnet/Sdk/master/…
  • 重要提示:DevOps 管道中的构建任务有一个版本选择器。我没有选择最新版本的任务(没有意识到他们的任务是版本化的,很好的功能)。有一条信息指出我选择的任务版本不适用于最新版本的 .net 核心。我也看不到包含预览选项。更改任务版本显示更多选项,警告消失。
  • 您是如何在此处编辑 .yml 文件的?我似乎无法通过 UI 找到选项?
  • @AzySır 你是什么意思?
  • UseDotNet 末尾的@2 是什么意思?
【解决方案2】:

您可以通过提供 3.x 而不是特定版本来获取最新的 .NET Core 3 SDK。另请注意 includePreviewVersions: true,这是完成这项工作所必需的。

- task: UseDotNet@2
  displayName: 'Use dotnet sdk 3.x'
  inputs:
    version: 3.x
    includePreviewVersions: true

你最终会得到这样的结果:

来源:.NET Core Tool Installer task

【讨论】:

  • 是的,这就是要走的路——是的,您可以从 3.0-previewX SDK 映像构建,但是下载和设置容器映像会在构建过程中再增加 60 秒。
  • 您会为此使用哪个构建代理?
【解决方案3】:

如果有人使用 Web GUI 而不是 yaml 文件。 可以使用windows-2019 值设置代理规范。

dotnet test等步骤将开始使用.Net Core 3.0:

【讨论】:

  • 我找不到你是怎么做到的?我有一个 Azure 托管代理。没关系,找到了!如果您编辑选择代理池的构建步骤,就会发现它。谢谢!
  • 编辑管道时,选择“管道”。它位于“获取资源”和“代理”标题上方的顶部。
【解决方案4】:

您还可以通过“旧”管道编辑器安装 SDK。添加新任务并搜索“.NET Core SDK 安装程序”。然后将顶部的版本切换到最新的预览版本,它将为您提供更多选项,例如“包含预览版本”复选框。您仍然需要手动输入您想要的版本。

【讨论】:

  • 谢谢,我也尝试过这样做,但仍然收到构建错误。也许我做错了。
【解决方案5】:

您可以使用.NET Core Tool Installer Task 指定 .net 核心 SDK 版本。 但我认为它还不允许 3.0 显然它允许,所以您可能需要创建一个带有 3.0 的容器并将其用作构建环境。那会起作用的。

https://docs.microsoft.com/en-us/azure/devops/pipelines/process/container-phases?view=azure-devops&tabs=yaml

示例 yaml:

resources:
  containers:
  - container: inflation
    image: yyy
    endpoint: xxx

jobs:
- job: inflate_infrastructure
  container: inflation << has to match the container name above
  pool:
    vmImage: 'Ubuntu-16.04'
  steps:
  - zzz

【讨论】:

    【解决方案6】:

    您可以添加任务Use .NET Core 并在Version 字段中插入所需的版本,例如3.0.100-preview9-014004,将Include Preview Versions 标记为选中。

    在任何其他 .NET Core 任务之前执行此任务。

    【讨论】:

      【解决方案7】:

      我使用 .net core 2.2,但它昨天发布了 .net core 3.0 preview 6。你可以使用下面的配置。我建议检查release-metadata serves

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-15
        • 1970-01-01
        • 1970-01-01
        • 2019-02-18
        • 2021-10-28
        • 1970-01-01
        • 2022-07-08
        相关资源
        最近更新 更多