MSBuild Binlog Analyzer for VS Code 扩展已在 Visual Studio Marketplace 上提供预览版,可将 MSBuild 二进制日志分析带入 Visual Studio Code 编辑器,而不必依赖独立查看器。该扩展使用 GitHub Copilot 帮助开发者了解构建失败的原因、分析构建缓慢问题、比较多个构建过程并发现回归。
.binlog 文件会记录 MSBuild 项目及其目标、任务、属性和诊断信息。但从中提取重要信息可能需要打开其他工具,并且需要知道应该在哪里查找。该扩展旨在解决这一问题,将日志内容转换为开发环境中的易懂答案。
失败原因与性能分析
开发者可以询问 Copilot 构建过程失败的原因,扩展会以清晰的语言提供解释,而不必手动在 NuGet 包还原消息及其他输出中查找。扩展还支持一键执行修复:Copilot 会读取失败的项目,应用修复,然后重新构建,并加载修复前后的日志以验证结果。也可以逐个修复问题:右键单击诊断信息,然后选择Auto-fix with Copilot。
在构建缓慢的情况下,扩展会按顺序显示最慢的目标和任务,并突出显示决定构建实际耗时的关键路径。它还可以说明哪些目标被重新构建以及原因,从而帮助验证增量构建是否正常工作,而不是依靠猜测。
比较与回归检测
可以将任意已加载的 binlog 文件设为基线,扩展会自动将后续构建与其进行比较。状态栏会显示一个徽章,说明相对于基线的变化比例;而Regressions节点会显示更改详情,包括变慢的目标、新增或删除的诊断信息、MSBuild 属性差异,以及 NuGet 包版本的变化。
Build Comparison界面可以在目标级别对两个日志进行可视化比较,显示差异,并突出显示由 MCP 服务器计算出的关键路径。来源举例说明,Copilot 追踪到CoreCompile操作增加了 473% 的耗时,该操作始于冷状态,并指出这属于首次编译的成本,而不是代码问题。
服务器与安装
该扩展与 .NET 全局工具Microsoft.AITools.BinlogMcp配合工作。该工具通过 Model Context Protocol 提供数十种构建分析工具。Copilot 会调用这些工具,以实际日志中的数据为依据;服务器还会在首次使用时自动安装,无需手动配置。
要使用该扩展,开发者需要 VS Code 1.99 或更高版本、GitHub Copilot 和 .NET SDK。可以通过命令面板中的Binlog: Load File命令打开 binlog 文件,使用快捷键 Ctrl+Shift+P;也可以通过Build & Collect Binlog选项在构建过程中创建日志,或从 Structured Log Viewer 中打开日志。
加载日志后,可以在 Copilot Chat 中与@binlog参与者交互,提出构建失败原因或最慢目标等问题,并使用/errors、/perf、/timeline、/compare、/summary、/incremental和/buildcheck等命令。
其他工具与 CI/CD 集成
该扩展包含 Binlog Explorer,可显示项目、错误、警告和性能部分;它还会在 VS Code 原生 Problems 面板中显示诊断信息,为每个项目提供 CodeLens,并支持请求 Copilot 进行解释。其他功能包括持续时间时间线、提出改进建议并应用改进后通过两个测试之间的自动比较进行验证,以及搜索构建事件、任务、消息和属性。
扩展还支持从 Azure DevOps Pipelines 和 GitHub Actions 下载 binlog 文件,并按分支或拉取请求进行筛选,从而无需离开 VS Code 即可分析失败的 CI 构建。它提供用于代理模式和自定义聊天模式的语言工具,以及开箱即用的 Build Analysis 模式。
该扩展仍处于预览阶段,并在持续积极开发中。对于希望在没有编辑器界面的情况下工作的用户,来源提到了 Microsoft Binlog MCP Server。它以无界面的方式使用同一分析引擎,适用于 CI 环境中的非交互式调查。反馈和建议可通过dotnet/skills存储库提交。