You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用.NET 6.0时Azure DevOps构建失败,报NU1201错误

解决NuGet还原时的框架不兼容错误(NU1201)

错误信息

##[error]NuGet命令执行失败,退出代码为(1),错误信息为(NU1201: 项目Demo与net5.0(.NETCoreApp,Version=v5.0)不兼容。项目Demo支持的框架为net6.0(.NETCoreApp,Version=v6.0))

问题原因

尽管Pipeline中已安装.NET 6 SDK,但NuGet还原任务默认可能仍尝试用.NET 5环境处理依赖,导致与项目的net6.0框架不匹配。

解决方法

1. 给NuGet还原任务指定目标框架

修改NuGetCommand@2任务,添加arguments参数明确指定net6.0:

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'
    arguments: '-r net6.0'

2. 确保VSBuild任务使用正确框架

在VSBuild的msbuildArgs中加入/p:TargetFramework=net6.0,强制编译时使用net6.0:

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site" /p:TargetFramework=net6.0'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

3. 锁定NuGet工具版本

确保NuGet版本支持.NET 6,将NuGetToolInstaller@1的versionSpec设为6.x:

- task: NuGetToolInstaller@1
  inputs:
    versionSpec: '6.x'
    checkLatest: true

完整修正后的YAML

trigger:
- main

pool:
  vmImage: 'windows-2022'

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

steps:
# 安装.NET 6 SDK
- task: UseDotNet@2
  displayName: Use .NET 6.0
  inputs:
    packageType: 'sdk'
    version: '6.0.x'

# 验证已安装的SDK
- task: CmdLine@2
  inputs:
    script: 'dotnet --list-sdks'

# 安装兼容.NET 6的NuGet工具
- task: NuGetToolInstaller@1
  inputs:
    versionSpec: '6.x'
    checkLatest: true

# 指定net6.0进行NuGet还原
- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'
    arguments: '-r net6.0'

# 用net6.0编译并打包项目
- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site" /p:TargetFramework=net6.0'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

内容的提问来源于stack exchange,提问作者Designworxz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:35:23