Azure DevOps 管道在 .net 6 中恢复 AutoMapper NuGet 包时出现问题

问题描述 投票:0回答:5

我的管道运行时收到以下错误消息:

Package AutoMapper.Extensions.Microsoft.DependencyInjection 8.1.1 与 net60 (.NETFramework,Version=v6.0) 不兼容。 AutoMapper.Extensions.Microsoft.DependencyInjection 包 8.1.1 支持:netstandard2.0 (.NETStandard,Version=v2.0) 一个或多个包与 .NETFramework 不兼容,Version=v6.0。)

这里有什么我可以做的还是需要等待AutoMapper团队更新它?

c# azure-devops azure-pipelines automapper .net-6.0
5个回答
4
投票

经过一些研究,我决定用 DotNetCoreCli“恢复”任务替换 NuGetCommand(NuGet-Task)。首先,我不得不将“vmImage”从“windows-latest”切换到“windows-2022”,因为最新的似乎有几个月的宽限期(阅读更多here)。就在那之前,我遇到了更多“与 net60 不兼容”的错误。不仅仅是来自 AutoMapper。

这是我的 Azure DevOps Pipeline YAML,适用于所有在将其管道迁移到 .NET 6 作为起点时遇到同样困难的人。

trigger:
  batch: true
  branches:
    include:
    - main

stages:
- stage: Build_Release
  pool:
    vmImage: windows-2022
  jobs:
  - job: Build
    variables:
      buildConfiguration: 'Release'
      solution: './SomeSolution.Name.sln'
    continueOnError: false
    steps:
 
    - task: DotNetCoreCLI@2
      inputs:
        command: 'restore'
        feedsToUse: 'config'
        nugetConfigPath: '.\NuGet.config'
        externalFeedCredentials: 'Telerik NuGet Connection'

    - task: VSBuild@1
      displayName: 'Build Solution'
      inputs:
        solution: '$(solution)'
        msbuildArgs: '/p:DeployOnBuild=true /p:PublishProvider=FileSystem /p:ExcludeApp_Data=False /p:DeleteExistingFiles=True /p:PublishUrl=$(Build.ArtifactStagingDirectory) /p:Configuration=$(buildConfiguration)'
        configuration: '$(buildConfiguration)'
        maximumCpuCount: true
        createLogFile: true

    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifacts'
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'some-artifact-name'
        publishLocation: 'Container'

Edit:删除了 UseDotNet-Task,因为在使用 windows-2022 时似乎不需要它。 链接


1
投票

看起来我的错误与Automapper无关。我必须创建一个全新的管道来解决我的问题。


1
投票

我有同样的错误并在管道中修复了更新的 nuget 版本包到 6.2.0


0
投票

在更新 .Net 7.0 的解决方案时有这个。解决方案是更新构建管道上的 Nuget 版本:

对于 .Net 7.0,我必须确保代理规范设置为“windows-2022”

在“Nuget Restore”任务之前添加一个新任务 > 选择“Nuget tool installer”:

然后,更改显示名称和版本。对于 .Net 7.0,版本 6.5.0 有效:

在那之后,Build Pipeline 运行没有问题


0
投票

通过在任何 NuGet 任务之前添加 NuGet 安装任务解决问题,如下所示:

  - task: NuGetToolInstaller@1
    displayName: 'Install NuGet >=6.3.0-0'
    inputs:
      versionSpec: '>=6.3.0-0'
      checkLatest: true

详见此处https://github.com/dotnet/efcore/issues/27528

© www.soinside.com 2019 - 2024. All rights reserved.