繁体   English   中英

无法在 azure devops 管道 (CI) 中构建 ASP.Net Core 7

[英]Unable to build the ASP.Net Core 7 in azure devops pipeline (CI)

无法在 azure devops 管道 (CI) 中构建 ASP.Net Core 7,使用经典管道和 ASP.net 核心模板

错误信息:

##[错误]C:\Program Files\do.net\sdk\6.0.203\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(144,5): Error.NETSDK1045: 当前.NET SDK 不支持定位 .NET 7.0. 要么以 .NET 6.0 或更低版本为目标,要么使用支持 .NET 7.0 的 .NET SDK 版本。

添加任务以安装所需的 .NET 版本(您可以将 7.x 更改为更具体的版本)

  - task: UseDotNet@2
    displayName: 'Use .NET Core SDK 7.x'
    inputs:
      packageType: sdk
      version: '7.x'
      installationPath: $(Agent.ToolsDirectory)/dotnet

文档

我们在自托管代理上升级到 .NET 7 时遇到了同样的问题,尽管按照 silent 的描述添加了UseDotNet@2 ,但我们仍然以引用各种 6.0.x SDK 目标的失败告终。

这个问题最终通过这个答案得到解决。 这是由于之前安装了 .NET 6 和变量MSBuildSDKsPath 如果您有自托管代理,请检查代理的“功能”以显示变量本身。

如果做不到这一点,请通过管道本身检查它的值,步骤如下:

      - script: set
        displayName: show all env vars

我们的 ci-pipeline.yaml 的示例片段如下所示。 重要说明是MSBuildSDKsPath覆盖代理上设置的任何环境变量以反映新安装的位置 .NET 7 SDK;

trigger:
  branches:
    include:
    - '*'
    exclude:
    - develop
    - main

variables:
  - name: solution
    value: '**/*.sln'  
  - name: BuildConfiguration
    value: 'Release'
  - name: MSBuildSDKsPath
    value: C:\agent\_work\_tool\dotnet\sdk\7.0.102\Sdks

jobs:
  - job: Build
    pool:
      vmImage: 'windows-latest'
      name: 'Modern'
    workspace:
      clean: all

    steps:
      - script: set
        displayName: show all env vars

      - checkout: self
        persistCredentials: true

      - task: UseDotNet@2
        displayName: 'Use .NET 7.x'
        inputs:
          packageType: 'sdk'
          version: 7.x
          performMultiLevelLookup: true
          includePreviewVersions: false
          installationPath: $(Agent.ToolsDirectory)/dotnet  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM