Azure devops: конвейер прерван после миграции на net core 3.0 - PullRequest
1 голос
/ 19 октября 2019

У меня есть решение с несколькими сетевыми стандартами 2.0, сетевыми стандартами 2.1, сетевыми ядрами 3.0 и полными чистыми 4.8 проектами. Конвейер выглядит следующим образом:

  pool:
    name: Azure Pipelines
    demands:
    - msbuild
    - visualstudio

  variables:
    BuildPlatform: 'any cpu'
    BuildConfiguration: 'release'

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

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

  - task: NuGetToolInstaller@1
    displayName: 'Use NuGet 4.9.1'
    inputs:
      versionSpec: 4.9.1
      checkLatest: true

  - task: NuGetCommand@2
    displayName: 'NuGet restore'

  - task: VSBuild@1
    displayName: 'Build solution **\*.sln'
    inputs:
      vsVersion: 16.0
      platform: '$(BuildPlatform)'
      configuration: '$(BuildConfiguration)'
      clean: true

  - task: DotNetCoreCLI@2
    displayName: 'dotnet test'
    inputs:
      command: test
      projects: '**/*tests.csproj'

  - task: PublishSymbols@2
    displayName: 'Publish symbols path'
    inputs:
      PublishSymbols: false

После установки правильной версии SDK, конвейер запускает dotnet restore для загрузки всех пакетов nuget, используемых в проектах net standard и net core. После этого он устанавливает Nuget и использует его для восстановления пакетов Nuget, используемых в проектах полного сетевого фреймворка.

После перехода на net core 3.0 восстановление Nuget завершается неудачно со следующей ошибкой:

##[error]The nuget command failed with exit code(1) and error(NU1202: Package Microsoft.EntityFrameworkCore.SqlServer 3.0.0 is not compatible with netcoreapp3.0 (.NETCoreApp,Version=v3.0). Package Microsoft.EntityFrameworkCore.SqlServer 3.0.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)
NU1202: Package Microsoft.EntityFrameworkCore.Tools 3.0.0 is not compatible with netcoreapp3.0 (.NETCoreApp,Version=v3.0). Package Microsoft.EntityFrameworkCore.Tools 3.0.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)
NU1202: Package Microsoft.EntityFrameworkCore.Relational 3.0.0 is not compatible with netcoreapp3.0 (.NETCoreApp,Version=v3.0). Package Microsoft.EntityFrameworkCore.Relational 3.0.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)
Errors in d:\a\1\s\Pagesp.ChaveMovel.AspNetCore.Site.Identity.v2\Pagesp.ChaveMovel.AspNetCore.Site.Identity.v2.csproj
    NU1202: Package Microsoft.EntityFrameworkCore.SqlServer 3.0.0 is not compatible with netcoreapp3.0 (.NETCoreApp,Version=v3.0). Package Microsoft.EntityFrameworkCore.SqlServer 3.0.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)
    NU1202: Package Microsoft.EntityFrameworkCore.Tools 3.0.0 is not compatible with netcoreapp3.0 (.NETCoreApp,Version=v3.0). Package Microsoft.EntityFrameworkCore.Tools 3.0.0 supports: netstandard2.1 (.NETStandard,Version=v2.1)
    NU1202: Package Microsoft.EntityFrameworkCore.Relational 3.0.0 is not compatible with netcoreapp3.0 (.NETCoreApp,Version=v3.0). Package Microsoft.EntityFrameworkCore.Relational 3.0.0 supports: netstandard2.1 (.NETStandard,Version=v2.1))
##[error]Packages failed to restore

Есть идеи, как это решить?

1 Ответ

2 голосов
/ 19 октября 2019

1) Мне удалось воспроизвести вашу проблему, используя:

2) Я прокомментировал versionSpec nuget в Задаче Nuget, и конвейер был успешно завершен.

- task: NuGetToolInstaller@1
  displayName: 'Use NuGet 4.9.1'
  inputs:
    # versionSpec: 4.9.1
    checkLatest: true

3) Автоматически установленная версия Nuget была 5.3.0

...