mcpField
B
binlog-failure-analysis

binlog-failure-analysis

github.com/dotnet开发5.8k3.7k 次安装1 天前更新
代码仓库

关于 binlog-failure-analysis

这项技能通过 `.binlog` 文件诊断 MSBuild 构建失败,面向排查构建错误和警告的开发者。它优先使用捆绑的 binlog MCP 服务进行结构化查询,并提供文本日志回放作为备用方案。

主要功能

  1. 01检查错误和警告
  2. 02查询属性、项与评估数据
  3. 03查看目标执行和嵌入文件
  4. 04将 binlog 回放为文本日志

适用场景

  1. 01追查 MSBuild 构建失败原因
  2. 02检查 binlog 中记录的项目数据
  3. 03在 MCP 不可用时继续诊断

MCP 相关

通过 `binlog` 命名空间中的捆绑 `Microsoft.AITools.BinlogMcp` 服务查询 `.binlog` 文件。服务不可用时,可使用文本日志回放流程。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dotnet/skills --skill binlog-failure-analysis

安装后在 Claude Code 中输入/binlog-failure-analysis确认已加载。

详细介绍

使用二进制日志分析 MSBuild 故障

此技能可根据 .binlog 文件诊断 MSBuild 构建故障。首选方式是使用 binlog MCP 服务(Microsoft.AITools.BinlogMcp,在 binlog MCP 命名空间下提供),此服务已随此插件打包。如果 MCP 服务不可用,且需要修复,请使用 troubleshoot-binlog-mcp 诊断启动问题。如果修复受阻、被拒绝或对当前任务并无必要,请继续使用下方的二进制日志重放工作流。

主要工作流 — binlog MCP

MCP 服务提供结构化工具,可检查 .binlog,而无需解析文本日志。请直接调用这些工具,而不是将二进制日志重放到文本文件中。如果不确定有哪些工具可用,请先调用 MCP 的 tools/list。

重要限制:

  • .binlog 文件是二进制格式——切勿尝试直接 cat、head、strings 或读取。只能使用 MCP 工具查询。
  • 原始源文件/项目文件可能在磁盘上,也可能不在。如果无法在磁盘上找到项目文件(.csproj、.props、.targets、App.config 等),则只能通过 MCP 工具从二进制日志中读取(例如,检索嵌入的文件/源文件)。
  • 边调查边综合结论。 不要耗尽所有可用时间进行调查——证据充足后,就应给出结论。带有清晰推理的部分答案,胜过调查中途超时。

使用可用的 MCP 服务工具查询二进制日志中的:

  • 构建错误和警告
  • MSBuild 属性及其值
  • MSBuild 项(PackageReference、ProjectReference 等)
  • 项目评估数据
  • 目标执行详情
  • 嵌入二进制日志的文件内容

备用工作流 — 文本日志重放(MCP 不可用时)

仅在 MCP 服务无法启动时使用(例如,使用较旧的 SDK 或处于离线环境中)。

将二进制日志重放为文本日志
dotnet msbuild build.binlog -noconlog \
  -fl  "-flp:v=diag;logfile=full.log;performancesummary" \
  -fl1 "-flp1:errorsonly;logfile=errors.log" \
  -fl2 "-flp2:warningsonly;logfile=warnings.log"

PowerShell 说明: 使用 -flp:"v=diag;logfile=full.log;performancesummary" (用引号括住分号)。

搜索文本日志
cat errors.log
grep -n -B2 -A2 "CS0246" full.log
grep -i "CoreCompile.*FAILED\|Build FAILED\|error MSB" full.log
grep 'Target "CoreCompile"' full.log | grep -oP 'project "[^"]*"'

生成二进制日志(仅在不存在二进制日志时)

dotnet build /bl:build.binlog

评论

支持 Markdown