用途:从 .binlog 文件诊断 MSBuild 构建失败,尤其适用于控制台输出难以定位问题、或需要排查跨项目级联失败的场景。
主要能力:优先使用随插件提供的 binlog MCP 服务器(Microsoft.AITools.BinlogMcp,binlog MCP 命名空间),以结构化工具查询构建错误与警告、MSBuild 属性与值、MSBuild 项(如 PackageReference、ProjectReference)、项目求值数据、目标执行细节,以及嵌入 binlog 的文件内容。不确定可用工具时可先调用 tools/list。
使用方式:.binlog 是二进制格式,禁止用 cat、head、strings 等直接读取,只能通过 MCP 工具查询。若磁盘上找不到源文件或项目文件(.csproj、.props、.targets、App.config 等),可通过 MCP 的嵌入/源文件检索功能从 binlog 内读取。调查过程中应边查边总结,证据足够即给出结论,部分结论加清晰推理优于超时中断。
回退流程:仅当 MCP 服务器无法启动(如旧版 SDK 或离线环境无法访问 dotnet-tools NuGet 源)时,才将 binlog 重放为文本日志:
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 等检索文本日志。若尚无 binlog,可用 dotnet build /bl:build.binlog 生成。
限制:依赖 .binlog 文件存在;MCP 不可用时功能受限;具体工具清单与更多细节资料未提供。