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

Azure Pipeline执行dotnet test遇testhost文件锁定问题求助

解决Azure Pipeline中dotnet test的MSB3026文件锁定问题

你遇到的是testhost进程占用测试依赖DLL导致的文件复制失败问题,以下是可行的解决办法:

1. 禁用测试并行执行

默认情况下dotnet test会并行运行测试,容易引发文件锁定。修改测试命令,添加--no-parallel参数:

dotnet test --no-parallel

也可以通过.runsettings文件控制并行度,示例配置:

<RunSettings>
  <RunConfiguration>
    <MaxCpuCount>1</MaxCpuCount>
  </RunConfiguration>
</RunSettings>

执行测试时指定该文件:dotnet test --settings .runsettings

2. 测试前清理构建输出目录

在dotnet test任务前添加清理命令,确保输出目录无残留文件和占用进程:

dotnet clean

3. 升级Test Platform相关NuGet包

你当前使用的microsoft.testplatform.objectmodel 16.9.4版本与.NET 5存在兼容性问题,建议升级到17.x系列版本。可以在项目的.csproj文件中指定更高版本的Microsoft.NET.Test.Sdk:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />

4. 分离构建与测试步骤

在Azure Pipeline中拆分任务:先单独执行构建,再执行测试并跳过构建步骤,避免两个步骤同时访问输出目录:

  • 构建任务:dotnet build
  • 测试任务:dotnet test --no-build

5. 强制终止残留testhost进程

在测试任务前添加PowerShell脚本,杀掉所有可能残留的testhost进程:

Get-Process -Name testhost -ErrorAction SilentlyContinue | Stop-Process -Force

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:47:20