关于 binlog-failure-analysis
这项技能通过 `.binlog` 文件诊断 MSBuild 构建失败,面向排查构建错误和警告的开发者。它优先使用捆绑的 binlog MCP 服务进行结构化查询,并提供文本日志回放作为备用方案。
主要功能
- 01检查错误和警告
- 02查询属性、项与评估数据
- 03查看目标执行和嵌入文件
- 04将 binlog 回放为文本日志
适用场景
- 01追查 MSBuild 构建失败原因
- 02检查 binlog 中记录的项目数据
- 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