Azure Pipelines и версии .NET

Это сводит меня с ума, и я не уверен, сбивает ли меня с пути диагностика, или я действительно использую неправильные версии.

У меня есть конвейер сборки в Azure, он создает минимальный API .NET Core. У этой штуки есть одна конечная точка. Это работает чудесно - когда я объединяюсь с Main, начинается конвейер - у него много шагов - но в интересах этого вопроса давайте предположим, что его два. Эти двое:

Шаг 1. Установите пакет SDK для .NET Core.

Шаг 2. Создайте проект

Итак, учитывая:

steps:
 - task: UseDotNet@2
   displayName: 'Install SDK'
   inputs:
       version: 8.x

.... который производит

Successfully installed .NET Core sdk version 8.0.401.
Creating global tool path and pre-pending to PATH.
Finishing: Install .NET Core SDK

... на следующем этапе я вызываю:

inputs: 
   command: 'build'

... почему диагностический вывод показывает


Description : Build, test, package, or publish a dotnet application, or run a custom dotnet command
Version : 2.244.1
Author : Microsoft Corporation
Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli
==============================================================================

##[warning]Resource file has already set to: /home/vsts/work/_tasks/DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b/2.244.1/node_modules/azure-pipelines-tasks-packaging-common/module.json

Info: .NET Core SDK/runtime 2.2 and 3.0 are now End of Life(EOL) and have been removed from all hosted agents. If you're using these SDK/runtimes on hosted agents, kindly upgrade to newer versions which are not EOL, or else use UseDotNet task to install the required version.

1.) как это могло быть основано на 2.2/3, а потом предупреждать меня, чтобы я не использовал эти вещи?

2.) почему он не использует то, что я просил на шаге 1?

Здесь действительно не использовался .NET 8? Информационное сообщение присутствует у всех? Я что-то упускаю?

Пожалуйста, спаси меня от безумия...

🤔 А знаете ли вы, что...
C# поддерживает событийно-ориентированное программирование с помощью ключевых слов event и delegate.


70
1

Ответ:

Решено

Информация: Срок службы .NET Core SDK/среды выполнения 2.2 и 3.0 истек (EOL) и удален из всех размещенных агентов.

Это информационное сообщение, встроенное в задачу dotnet версии 2 в Azure DevOps. И он был добавлен в задачу dotnet с 2020 года. Все пользователи, использующие задачу dotnet версии 2, увидят это информационное сообщение.

См. этот коммит задачи, связанный с изменением: [DotnetCoreCLIV2]удаление предупреждения об устаревании версий и создание информационного сообщения

Это информационное сообщение предназначено для напоминания проектам, использующим .net 2.2 и 3.0, о том, что им необходимо использовать основную задачу «Использовать dotnet» для установки необходимого старого пакета SDK. Он не используется для отображения версии .net SDK, используемой текущим конвейером.

Это не влияет на вашу текущую сборку и может полностью игнорировать этот информационный журнал.

почему он не использует то, что я просил на шаге 1?

В соответствии с вашим определением конвейера при сборке dotnet должна была использоваться установленная вами версия dotnet.

Вы можете добавить дополнительную задачу сценария перед задачей сборки dotnet, чтобы выполнить команду: dotnet --version для подтверждения версии dotnet.

Например:

steps:
- task: UseDotNet@2
  displayName: 'Use .NET Core sdk 8.x'
  inputs:
    version: 8.x

- script: 'dotnet --version'
  displayName: 'Check dotnet version'

- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    projects: '**/*.csproj'
    arguments: '--configuration $(BuildConfiguration)'

Когда вы проверите задачу сценария, она покажет текущую версию dotnet, используемую в конвейере.

Например:

В настоящее время это информационное сообщение не поддерживает скрытие в задаче dotnet версии 2.

Если вы не хотите видеть информационные сообщения в журнале, вы можете рассмотреть следующие методы:

  1. Перейдите на использование старой версии задачи dotnet: DotNetCoreCLI@1 — задача .NET Core v1

  2. Измените использование задачи сценария (powershell/bash/cmd) для прямого запуска команды dotnet в Azure Pipelines.