无法生成ASP.azure devops管道(CI)中的Net Core 7



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

错误消息:

##[error]C:\Program Files\dotnet\sdk\6.0.203\Sdks\Microsoft.NET.sdk\targets\Microsoft.NET.TargetFrameworkInference.targets(144,5):错误NETSDK1045:电流。NET SDK不支持定向。NET 7.0。任一目标。NET 6.0或更低版本,或使用的某个版本。NET SDK支持。NET 7.0。

添加一个任务来安装。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和变量CCD_ 2。如果您有自托管代理,请检查";能力;以显示变量本身。

如果做不到这一点,就用类似的步骤通过管道本身来检查它的值;

- 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_tooldotnetsdk7.0.102Sdks
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  

最新更新