由于Microsoft.AspNetCore程序包中的版本冲突,Azure DevOps管道构建失败

时间:2019-08-14 19:15:40

标签: .net azure-devops botframework

我一直在尝试使用Azure DevOps建立适当的devops管道。我的问题与其他帖子非常相似,但没有一个解决我的问题: NU1607: Version conflict detected for Microsoft.AspNetCore.Antiforgery. Reference the package directly from the project to resolve this issue. botProj (>= 1.0.0) -> Bot.Builder.Community.Middleware.Typing (>= 1.0.82) -> Microsoft.AspNetCore.Mvc.ViewFeatures (>= 2.1.1) -> Microsoft.AspNetCore.Antiforgery (>= 2.1.1) botProj (>= 1.0.0) -> Microsoft.AspNetCore.App (>= 2.1.0) -> Microsoft.AspNetCore.Antiforgery (>= 2.1.0).)

如果我像建议的那样直接添加此引用,那么它给了我一个新的引用。我希望不必直接添加每个。

在此帖子中: How do I resolve version conflicts in aspnet core 2.1? (2.1.1 >= 2.1.0-rc1-final)

答案表明,我只需要在<PackageReference Include="Microsoft.AspNetCore.App" />文件中设置.csproj。 我已经做到了,但仍然收到相同的错误。

在此帖子中: 建议使用dotnet-restore,我相信已将其放入azure-pipelines.yml中,但老实说这可能是错误的命令,因此我将发布管道 Azure DevOps build pipline constantly giving version conflict on every package

这是我的azure-pipelines.yml

vmImage: 'windows-2019'

trigger:
- dev/mybranch

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

steps:
- task: NuGetToolInstaller@0

- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '2.2.101'

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'config'
    nugetConfigPath: 'ibibot_ops/NuGet.Config'

- task: VSBuild@1
...
- task: VSTest@2
...

我将.csproj张贴在要点上: https://gist.github.com/MilesWilde/e85f08f5bce40fa63222bbdcffc808cc

我也有一个测试botProj.test.csproj,但看来它不会影响错误,因此除非有道理,否则我不会发布。

我们对此提供了任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

此问题已通过在我的管道中为NugetToolInstaller@0任务指定一个版本并使用DotNetCoreInstaller@0来解决。这是我最后的.yml,其中删除了一些信息

steps:
- task: DotNetCoreInstaller@0
  displayName: 'Use .NET Core sdk 2.2.101'
  inputs:
    version: 2.2.101
  continueOnError: true

- task: NuGetToolInstaller@0
  displayName: 'Use NuGet 4.9.1'
  inputs:
    versionSpec: 4.9.1

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'config'
    nugetConfigPath: './NuGet.Config'

- task: VSBuild@1
...

- task: DotNetCoreCLI@2
...

- task: PublishCodeCoverageResults@1
...