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

MSBuild 17.4下dotnet test命令失败:求版本差异分析与解决方案

解决MSBuild 17.4下dotnet test报MSB1003错误的问题

解决方法

  • 明确指定测试项目路径:修改Azure DevOps中的dotnet test命令,直接传入项目或解决方案的完整相对路径,比如:
    dotnet test ./src/YourProject.Tests/YourProject.Tests.csproj
    
    不要依赖MSBuild自动在当前目录查找项目文件,避免探测逻辑变更带来的问题。
  • 检查任务工作目录:确认Azure DevOps的DotNetCoreCLI任务中workingDirectory参数是否正确设置为包含项目/解决方案的目录,比如你的项目根目录,防止代理更新后默认工作目录偏移。
  • 锁定兼容的MSBuild版本:如果暂时不想适配17.4,可通过UseDotNet任务指定.NET Core 3.1对应的兼容SDK版本(绑定MSBuild 17.3),或者在dotnet test命令中添加参数强制指定MSBuild版本:
    dotnet test --msbuild-version 17.3
    

MSBuild 17.3与17.4的关键差异(与该问题相关)

  • 项目探测逻辑调整:17.4版本收紧了当前工作目录下项目文件的探测规则,不再递归查找子目录中的项目文件,仅检查当前目录直接存在的.csproj/.sln文件,导致依赖自动查找的命令触发MSB1003错误。
  • 旧框架兼容性变化:MSBuild 17.4重点优化了对.NET 6+版本的支持,对.NET Core 3.1这类旧框架的自动适配逻辑做了调整,默认目录查找行为不再兼容旧项目的结构。
  • 命令行参数解析严格化:17.4对dotnet命令的参数解析更严格,之前允许的省略项目路径的模糊调用方式被限制,必须显式指定目标项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:40:30