使用 VS Code 中的 Copilot 分析 MSBuild 二进制日志

Microsoft .NET Blog 2026-07-28T05:14:47.139460

你肯定遇到过这种场景:CI 流水线爆红,或者昨天还只要 8 秒的构建,今天突然涨到 40 秒,而你只能盯着满屏的 MSBuild 输出,努力寻找那条真正有用的信息。答案几乎总藏在二进制日志(.binlog)里——它记录了构建过程中每一个项目、目标、任务、属性和诊断信息。问题是,要读取这些日志,你得先打开一个独立的查看器,并且预先知道该往哪里看。如果能直接“问”出来呢?这就是 MSBuild Binlog Analyzer for VS Code 的初衷——现已作为预览版上架 Visual Studio Marketplace。

这个扩展把二进制日志分析直接搬进了你的编辑器,把繁琐的排查工作交给 GitHub Copilot Chat——让你不打断思路,继续交付代码。如果你只想让一个代理自动帮你分析构建(比如在 CI 中无人值守),可以看看 Microsoft Binlog MCP Server——同样的分析引擎,无界面驱动。这篇文章介绍的是在编辑器内交互式体验的部分。

它解决了哪些问题

构建日志是你手中最好的证据,也是最让人头疼的阅读材料。Binlog Analyzer 把这些证据变成了答案:

没有上下文切换,不需要单独工具,也无需手动解读 MSBuild。

它是什么

底层上,这个扩展搭配了一个 .NET 全局工具 MCP 服务器:Microsoft.AITools.BinlogMcp,它通过模型上下文协议(Model Context Protocol,MCP)暴露了几十个构建分析工具。Copilot 调用这些工具,基于你的实际日志来给出答案——而不是凭空猜测。最棒的是,这个服务器会在首次使用时自动安装。

在 VS Code 中用 Copilot 分析 MSBuild 二进制日志

完全不需要手动配置。从 Marketplace 安装扩展后,你只需准备好 VS Code 1.99+、GitHub Copilot 和 .NET SDK。可以通过三种方式打开一个 .binlog 文件:

然后在 Copilot Chat 中直接提问 @binlog

@binlog why did the build fail?
@binlog what are the slowest targets?
@binlog /perf

功能亮点巡览

Binlog Explorer 是你的全貌地图

侧边栏的树形结构让整个构建过程一览无余:已加载日志项目错误警告,以及一个性能分区,里面包含最慢的目标、最慢的任务、重新构建原因和分析耗时。

诊断信息也会直接显示在 VS Code 的原生 Problems 面板中,每个项目都有 CodeLens 和一个 Ask @binlog 操作——这样树中的错误只需点击一下就能获得解释。

@binlog 聊天——并一键修复构建

这才是将分析变成对话的地方。你可以提出开放式问题,也可以使用斜杠命令,例如 /errors/perf/timeline/compare/summary/incremental/buildcheck。由于参与者直接调用了 MCP 工具,每一条回答都引用了日志中的真实数据。

接下来是大家最爱的部分:Fix all issues。Copilot 会读取失败的项目,应用修复,重新构建,并加载构建前后的 binlog,让你确认修复生效——全程无需离开编辑器。想逐个处理?在任何诊断项上右键,选择 Auto-fix with Copilot 即可。

在发布前捕获回归

将任意已加载的 .binlog 设为基线,之后每次新构建都会自动与之对比。状态栏会出现一个 Build: +X% vs baseline 徽章,Regressions 节点会详细列出变化:变慢的目标、新增或移除的诊断、MSBuild 属性差异,以及 NuGet 包版本变更。你可以将任何一条回归直接交给 @binlog 深入分析。

可视化对比两个构建

Build Comparison 视图会将两个日志按目标逐行对齐并显示差异,项目图还会高亮 MCP 计算出的关键路径。

更多功能值得一试

这个扩展还内置了不少实用功能:

试试看

MSBuild Binlog Analyzer 目前处于预览阶段,正在积极开发中。你可以从 Visual Studio Marketplace 安装它,指向一个 .binlog 文件,然后向 @binlog 提问你关心的构建问题。说不定下一次红色的构建就能自己修好了。

我们非常期待你的反馈。

反馈

MSBuild Binlog Analyzer 是开放开发的,你的反馈将决定它的未来走向。如果发现了 bug、遇到了不顺手的地方,或者有新的功能想法,欢迎在 dotnet/skills 仓库 提交 issue——bug 报告、功能请求以及任何一般性反馈都来者不拒。请告诉我们哪些地方好用、哪些不好用,以及你希望接下来看到什么。


原文首发于 .NET Blog:Analyze MSBuild Binary Logs with Copilot in VS Code


认识一下 VS Code 的 MSBuild Binlog Analyzer

查看原文