升级到 2.0 版后,Dotnet 测试任务失败并显示“MSB1008:只能指定一个项目”错误

Adr*_*ian 5 tfs tfsbuild asp.net-core

我正在处理的 TFS 实例最近从 TFS 2017 Update 1 升级到 TFS 2018 Update 2,允许我将构建定义中使用的 dotnet 任务版本从 0.* 更改为 2.*。

这样做时,dotnet 测试步骤不再起作用,并返回以下错误:

MSBUILD : error MSB1008: Only one project can be specified.
Switch: trx
Run Code Online (Sandbox Code Playgroud)

它运行的命令是:

C:\Program Files\dotnet\dotnet.exe" test <Agent_WorkFolder>\1\w\3\s\source\MySolution\MyProject.csproj --configuration release --logger trx --logger trx --results-directory <Agent_WorkFolder>\1\w\_temp
Run Code Online (Sandbox Code Playgroud)

给任务的参数是:

  • 项目路径 = **\*Tests*.csproj
  • 参数 = --configuration $(BuildConfiguration) --logger trx

将任务版本恢复为 0.*,然后再次运行。是什么导致了这个错误?

Adr*_*ian 9

问题是由--logger trx在任务的参数中指定引起的。较新版本的任务在执行dotnet test命令时会自动添加此开关作为 TFS 支持读取测试结果的输出。额外的参数导致开关被给出两次,所以虽然 MSBUILD 错误没有帮助,但该Switch: trx部分提供了问题所在的线索。

从参数中删除开关解决了问题。