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

配置.NET5 Specflow NUnit项目Azure Pipelines时出现NETSDK1005错误

.NET5 Specflow NUnit项目Azure Pipeline构建报错

我在为.NET5 Specflow NUnit项目配置Azure Pipeline时遇到了问题,构建过程报错如下:

##[error]C:\Program Files\dotnet\sdk\5.0.202\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5):错误 NETSDK1005:资产文件"D:\a\1\s\obj\project.assets.json"未包含针对"net5.0"的目标,请确保已运行包还原操作,且项目的TargetFrameworks配置中已包含"net5.0"。

我已经检查过项目文件,其中确实包含对net5.0的引用。

常见解决方案

该错误核心是包还原生成的project.assets.json与构建环境、构建步骤不匹配,在已确认项目TargetFramework配置正确的前提下,可按以下顺序排查处理:

  • 确认Pipeline执行环境已安装匹配的.NET 5 SDK
    可在Pipeline最开头添加命令行任务执行dotnet --list-sdks,验证Agent镜像内是否存在5.0.x版本的SDK,避免使用未预装.NET 5的旧版Agent镜像。
  • 调整任务执行顺序,先执行显式包还原,再执行构建/测试
    不要直接运行dotnet build/测试任务,需先添加独立的还原步骤:
    • 可使用内置的.NET Core Restore任务,指定版本为5.0.x
    • 也可直接执行命令dotnet restore $(构建文件路径)完成还原
  • 清理工作区残留的旧构建文件
    启用Pipeline的工作区清理选项,或在构建前添加命令删除旧的obj/bin目录:
    • Windows Agent执行:Remove-Item -Recurse -Force **/obj, **/bin
    • Linux/macOS Agent执行:rm -rf ./**/obj ./**/bin
  • 检查NuGet缓存配置
    若使用了Cache@2缓存任务加速构建,需将.NET SDK版本、项目TargetFramework版本加入缓存键,避免旧缓存中残留的project.assets.json被复用。
  • 校验csproj配置细节
    确认单目标项目使用的是<TargetFramework>net5.0</TargetFramework>节点,多目标项目使用的是<TargetFrameworks>net5.0</TargetFrameworks>节点,无拼写、大小写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 02:36:03