Расширение 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 связывает увеличение на 473% с операцией CoreCompile, начавшейся в холодном состоянии, и объясняет, что это стоимость первой компиляции, а не проблема в коде.
Сервер и установка
Расширение работает совместно с глобальным инструментом .NET Microsoft.AITools.BinlogMcp, который предоставляет десятки инструментов анализа сборки через протокол Model Context Protocol. Copilot вызывает эти инструменты, опираясь на фактические данные из журнала. Сервер устанавливается автоматически при первом использовании, без ручной настройки.
Для использования расширения разработчику нужны VS Code версии 1.99 или более поздней, GitHub Copilot и .NET SDK. Файл binlog можно открыть через команду Binlog: Load File на панели команд с помощью сочетания клавиш Ctrl+Shift+P, создать журнал во время сборки через пункт Build & Collect Binlog или открыть его из Structured Log Viewer.
После загрузки журнала в Copilot Chat можно взаимодействовать с участником @binlog, задавая вопросы, например о причине сбоя сборки или самых медленных целях, а также используя такие команды, как /errors, /perf, /timeline, /compare, /summary, /incremental и /buildcheck.
Дополнительные инструменты и интеграция с CI/CD
Расширение включает обозреватель Binlog, отображающий проекты, ошибки, предупреждения и разделы производительности. Диагностические сообщения также показываются в стандартной панели Problems внутри VS Code, а для каждого проекта доступен CodeLens с возможностью запросить объяснение у Copilot. Среди других функций — временная диаграмма длительностей, возможность предложить улучшения и применить их с последующей проверкой посредством автоматического сравнения двух тестов, а также поиск по событиям сборки, задачам, сообщениям и свойствам.
Расширение также позволяет скачивать файлы binlog из Azure DevOps Pipelines и GitHub Actions, фильтруя их по ветке или запросу на слияние, чтобы анализировать неудачные сборки CI, не покидая VS Code. Доступны языковые инструменты для задания режима агента и пользовательских режимов чата, а также готовый режим Build Analysis.
Расширение всё ещё находится на этапе предварительного просмотра и активно развивается. Для тех, кто предпочитает работать без редакторского интерфейса, источник упоминает Microsoft Binlog MCP Server, использующий тот же движок анализа в режиме без интерфейса, что подходит для неинтерактивных расследований в средах CI. Сообщения об ошибках и предложения принимаются через репозиторий dotnet/skills.