Сборка .NET Core 3.0 на конвейерах Azure

Да, я знаю .NET Core 3.0 все еще в предварительном просмотре. я хотел бы построить это на конвейерах Azure.

Есть ли простой способ сделать это?

В настоящее время появляется эта ошибка:

/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 SDK, которая поддерживает .NET Core 3.0.

редактировать

Я нашел официальную документацию об этом:

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

Ответ 1

Вы можете установить .Net core SDK 3.0 во время конвейера с помощью задачи .Net Core SDK :

- task: [email protected]
  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, вы можете поставить более раннюю версию, вы можете найти здесь список версий.

Другой вариант - указать 3.0.x и включить предварительный просмотр версий:

version: 3.0.x
includePreviewVersions: true

Результаты установки:

enter image description here

Ответ 2

Вы можете получить последнюю версию .NET Core 3 SDK, указав 3.x вместо конкретной версии. Также обратите внимание на includePreviewVersions: true, который необходим для этой работы.

- task: [email protected]
  displayName: 'Use dotnet sdk 3.x'
  inputs:
    version: 3.x
    includePreviewVersions: true

И в итоге вы получите что-то вроде этого:

enter image description here

Источник: Задача установщика .NET Core Tool

Ответ 3

Вы также можете установить SDK через "старый" редактор конвейеров. Добавьте новое задание и найдите ".NET Core SDK Installer". Затем переключите версию вверху на последнюю версию предварительного просмотра, и она предложит вам больше возможностей, например, флажок "Включить предварительный просмотр". Вам все равно придется ввести нужную версию вручную.

Screenshot of my task:

Ответ 4

Вы можете указать версию .net core SDK с помощью Задачи установщика .NET Core Tool. Но я не думаю, что он поддерживает 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

Ответ 5

Я использую .net core 2.2, но вчера он выпустил .net core 3.0 preview 6 [1]. Вы можете использовать конфигурацию ниже. Я предлагаю инспектировать релиз-метаданные (2).

steps:
- task: [email protected]
  displayName: 'Use .NET Core sdk'
  inputs:
    packageType: sdk
    version: 3.0.0-preview5
    installationPath: $(Agent.ToolsDirectory)/dotnet

[1] https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.0/releases.json

[2] https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/dotnet-core-tool-installer?view=azure-devops

Ответ 6

Вы можете добавить задачу Use .NET Core и вставить нужную версию в поле Version, например, 3.0.100-preview9-014004, пометьте Include Preview Versions как отмеченное.

Выполните эту задачу перед любыми другими задачами .NET Core.

Ответ 7

В случае, если кто-то использует веб-интерфейс вместо файлов yaml. Можно задать спецификацию агента со значением windows-2019.

enter image description here

Такие шаги, как dotnet test начнут использовать .Net Core 3.0:

enter image description here