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

TFS 2015 vNext构建itrace文件致磁盘不足的解决咨询

我之前帮团队处理过类似的TFS 2015构建服务器磁盘占用问题,针对你提到的te.processhost.managed_xxx_xxx_xxx.itrace文件(由VS Test任务开启代码覆盖率时生成且不会自动删除),有几个靠谱的解决方案,既能保留代码覆盖率功能,又能解决磁盘空间问题:

解决方案1:将临时文件定向到构建代理工作目录(无需脚本自动清理)

TFS 2015的构建代理默认会在构建完成后清理自己的工作区目录,所以我们可以让VS Test任务把这些itrace文件生成到代理的工作目录下,这样构建结束后会自动被清理:

  • 打开你的TFS vNext构建定义,找到Visual Studio Test任务
  • 切换到高级选项卡,找到「工作目录」(Working Directory)设置项
  • 将其设置为$(Agent.WorkFolder)\_temp(或者代理工作区内的任意子目录)
  • 保存构建定义并重新运行构建,之后这些itrace文件会生成在指定的工作目录中,构建完成后代理会自动清理整个工作区,无需额外操作
解决方案2:使用.runsettings配置代码覆盖率的临时文件路径

如果需要更精细的控制,可以通过自定义.runsettings文件来指定代码覆盖率跟踪文件的输出位置,同时确保这些文件会被构建流程自动处理:

  1. 创建一个名为CodeCoverage.runsettings的文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
        <Configuration>
          <!-- 指定跟踪文件输出到构建工作目录,方便后续自动清理 -->
          <TraceOutputDirectory>$(Agent.WorkFolder)\_coverage_temp</TraceOutputDirectory>
          <!-- 设置为false,让测试任务在完成后自动删除跟踪文件 -->
          <KeepTraceFiles>false</KeepTraceFiles>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>
  1. 将这个文件添加到你的源代码仓库中
  2. 在Visual Studio Test任务的「测试运行设置」(Test run settings)选项中,选择「指定.runsettings文件」,并填写该文件的路径(比如$(Build.SourcesDirectory)\CodeCoverage.runsettings)
  3. 保存构建定义后,后续构建生成的itrace文件会被放到指定目录,且KeepTraceFiles=false会让测试任务在完成后自动删除这些跟踪文件
解决方案3:添加清理任务(脚本方式,备选)

如果上面的配置方法因为TFS版本限制无法生效,可以在VS Test任务之后添加一个PowerShell任务来自动清理文件:

  • 在构建定义中添加一个新的PowerShell任务,放在Visual Studio Test任务之后
  • 设置任务的「脚本类型」为「内联脚本」,输入以下命令:
# 清理C:\Windows\Temp下所有符合命名规则的itrace文件
Remove-Item -Path "C:\Windows\Temp\te.processhost.managed_*.itrace" -Force -ErrorAction SilentlyContinue
  • 确保该任务的「运行条件」设置为「即使前面的任务失败,也要运行」,这样不管测试是否通过,都会执行清理操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:15:09