Возобновляется сборка Azure-Pipeline: текущий пакет .NET SDK не поддерживает таргетинг на .NET Core 3.1

#azure #azure-devops #azure-functions

#azure #azure-разработка #azure-функции #azure-devops

Вопрос:

У меня есть решение Visual Studio 2019 с приложением .NET Framework, с конвейером Azure, который создает и развертывает веб-приложение.

Недавно я добавил проект Azure Functions в свое решение. (.net core) Два проекта в решении не отражают друг друга.

На моем локальном компьютере решение создается без проблем, и я могу запускать оба приложения.

Однако, когда процесс Azure Pipeline пытается собрать решение, происходит сбой со следующей ошибкой:

Ошибка NETSDK1045: текущий пакет .NET SDK не поддерживает таргетинг на .NET Core 3.1. Любой целевой.NET Core 2.1 или ниже, или используйте версию .NET SDK, которая поддерживает .NET Core 3.1.

На самом деле я хочу, чтобы этот конвейер Azure игнорировал новый проект .net core и продолжал создавать, а затем развертывать мое веб-приложение.

Как я могу заставить Azure создать мой проект таким же образом, как на моем локальном компьютере?

Комментарии:

1. Можете ли вы показать, как вы компилируете свое решение в конвейере?

2. Привет, у вас была возможность попробовать приведенные ниже предложения. Как все прошло?

3. В итоге я просто изменил цель на более низкую версию .net core, и это сработало. — Однако я обновлю это в ближайшие дни, потому что в более поздней версии .net core есть некоторые функции, которые мне нужны. Я отмечу это как ответ, когда опробую его позже на этой неделе. Спасибо за вашу помощь

Ответ №1:

Похоже, что конвейер пытается использовать неправильный .NET Core SDK для компиляции ваших проектов, которые нацелены на .NET Core 3.1.

Вы можете попробовать добавить задачу Использовать .NET Core перед задачей восстановления и сборки, чтобы убедиться, что в вашем конвейере используется версия .NET Core 3.1. Смотрите ниже:

 - task: UseDotNet@2
  inputs:
    version: 3.1.302

- task: DotNetCoreCLI@2
  inputs:
    command: restore   
    projects: '**/*.csproj'
- task: DotNetCoreCLI@2
  inputs:
    command: build 
    projects: '**/*.csproj'
  

Если вы использовали задачу сборки Visual Studio для создания своих проектов, вам необходимо запустить конвейер в агенте windows-latest , на котором установлена Visual Studio 2019. Или вы все еще можете столкнуться с этой ошибкой «Текущий .NET SDK не поддерживает таргетинг на .NET Core 3.1».

Если вы хотите игнорировать новый проект .net core. Вы можете установить атрибут projects задачи сборки для сборки конкретного проекта. Смотрите ниже:

 - task: DotNetCoreCLI@2
  inputs:
    command: restore 
    projects: '**/oldProject.csproj'
- task: DotNetCoreCLI@2
  inputs:
    command: build 
    projects: '**/oldProject.csproj'
  

Задача сборки Visual Studio для сборки одного проекта

 - task: VSBuild@1
  condition: always()
  inputs:
    solution: '**/oldProject.csproj'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    msbuildArgs: '/t:build'
  

Ответ №2:

У меня была эта проблема, я только что обновил проект с .NET Core 2.2 на .NET Core 3.1, и он прекратил сборку в Azure Devops, выдав мне ошибку The current .NET SDK does not support targeting .NET Core 3.1 во время задачи восстановления Nuget.

Перед восстановлением Nuget в конвейере использовалась задача «Установщик инструментов Nuget».Nuget Tool Installer«. Установщик использовал версию Nuget, которая не поддерживала .NET Core 3.1.

Я обновил установщик инструментов Nuget, чтобы использовать более новую версию, и моя сборка выполнялась правильно.

введите описание изображения здесь