Azure Сбой сборки DevOps после обновления приложения с ASP. NET Core 2.2 до ASP. NET Core 3.1 - PullRequest
1 голос
/ 09 февраля 2020

У меня есть сборка, которая отлично работает локально (VSCode,. NET Core 3.1.101), но выдает сбой со следующим сообщением при запуске в Azure DevOps Pipeline.

Мой конвейер удален в большинстве случаев c:

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

И это приводит к этому сообщению об ошибке:

Версия 3.1.101. NET Core SDK требует как минимум версию 16.3.0 MSBuild. Текущая доступная версия MSBuild - 15.9.21.664. Измените. NET Core SDK, указанный в global. json, на более старую версию, для которой требуется текущая версия MSBuild.

Я не могу найти способ изменить версию MSBuild, которая конвейер запускается и меняется на более старую версию. NET Core наверняка побеждает цель обновления?

Есть ли способ построить решение. NET Core 3.1 на Azure DevOps?

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Вы должны иметь возможность восстанавливать пакеты nuget, компилировать и запускать модульные тесты, используя этот YAML


pool:
  vmImage: 'windows-latest'

variables:
  buildConfiguration: 'Release'
  rootDirectory: '$(Build.SourcesDirectory)'

steps:

- task: DotNetCoreCLI@2
  displayName: Restore nuget packages
  inputs:
    command: restore
    projects: '**/*.csproj'
    workingDirectory: $(rootDirectory)

- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    command: build
    projects: '$(rootDirectory)/*.sln'
    arguments: '--configuration $(buildConfiguration)'

# You just added coverlet.collector to use 'XPlat Code Coverage'
- task: DotNetCoreCLI@2
  displayName: Test
  inputs:
    command: test
    projects: '*Tests/*.csproj'
    arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage" -- RunConfiguration.DisableAppDomain=true'
    workingDirectory: $(rootDirectory)

Я предположил, что ваш файл решения находится в каталоге root. Если вы используете глобальный json, пожалуйста, установите версию SDK на 3.1.201, в противном случае может потребоваться другое стерео.

global. json

{
  "sdk": {
    "version": "3.1.201",
    "rollForward": "latestFeature"
  }
}
0 голосов
/ 10 февраля 2020

Я не вижу нигде у вас задачи do tnet build, вам нужно иметь задачу dotnetbuild с настроенной версией,

steps:

    - task: UseDotNet@2 
      displayName: ".NET Core 3.1.x"
      inputs:
        version: '3.1.x'
        packageType: sdk
    - script: dotnet build --configuration $(buildConfiguration)
      displayName: 'dotnet build $(buildConfiguration)'

См. Эту статью .

...