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? Информационное сообщение присутствует у всех? Я что-то упускаю?

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

Это просто информация, которая говорит о том, что эти версии устарели. Не потому, что они используются вашей командой сборки. Сборка завершилась бы неудачей, если бы на машине, на которой работает конвейер, была установлена ​​только .NET Core 2.2/3.

uvr 27.08.2024 18:49

Да, это просто предупреждение, отображаемое при использовании агентов, размещенных в Microsoft. Вы можете дважды проверить версию .NET, которая в данный момент используется в конвейере, добавив задачу сценария с помощью команды dotnet --version после задачи UseDotNet@2.

Rui Jarimba 27.08.2024 19:04

Также используйте dotnet --list-sdks до и/или после установки SDK, чтобы узнать, какие SDK доступны.

Rui Jarimba 27.08.2024 21:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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.

Спасибо, Кевин. Именно номер версии в выходной диагностике, показывающий «2.237.1», действительно привел меня сюда. На мой взгляд, это выглядело так, будто среда выполнения .NET или SDK сообщает мне номер своей версии, но, как вы ясно дали понять, это не так. Буду признателен за развернутый ответ!

SpaceBison 28.08.2024 10:11

@SpaceBison Это версия задачи конвейера: 2.237.1. Не версия .net SDK. Из вашего образца YAML я могу подтвердить, что задача сборки dotnet будет использовать правильный SDK .net 8.

Kevin Lu-MSFT 28.08.2024 10:13

Да, я понимаю, но в сочетании с не относящимся к делу информационным сообщением это создает запутанный сценарий диагностики.

SpaceBison 28.08.2024 10:14

Ой. Теперь я могу понять вашу точку зрения (версия задачи 2.2xx и информационное сообщение: .net2.2). Это действительно немного сбивает с толку. Но эти информационные сообщения можно игнорировать. Они не повлияют на вашу сборку. Вы можете продолжить разработку в Pipeline. Приятного кодирования!

Kevin Lu-MSFT 28.08.2024 10:19

Другие вопросы по теме