Binlog Failure Analysis

by dotnet0608d8924cd3MIT5.5K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated today

Analyze MSBuild binary logs to diagnose build failures. USE FOR: build errors that are unclear from console output, diagnosing cascading failures across multi-project builds, tracing MSBuild target execution order, and generally any MSBuild build issues. Requires an existing .binlog file. DO NOT USE FOR: generating binlogs (use binlog-generation), non-MSBuild build systems.

AI-generated overview

Diagnoses MSBuild build failures by querying a .binlog file through MCP tools or a text-log replay fallback.

What it does
This skill guides an agent through diagnosing MSBuild build failures from an existing .binlog file. Its primary workflow queries the binary log through the binlog MCP server to inspect errors, warnings, properties, items, project evaluation data, target execution and embedded file contents. When the MCP server is unavailable, it falls back to replaying the binlog into diagnostic, error and warning text logs and searching them. It produces an analysis of the failure rather than a new build artifact.
When to use it
Use it for build errors that are unclear from console output, cascading failures across multi-project builds, tracing MSBuild target execution order, or other MSBuild build issues. It requires an existing .binlog file and is not intended for generating binlogs or for non-MSBuild build systems.
Requirements
An existing .binlog file. The preferred path needs the binlog MCP server (Microsoft.AITools.BinlogMcp, binlog MCP namespace); the fallback needs the dotnet CLI with MSBuild for replaying the binlog and shell tools such as grep for searching the text logs. Ships no scripts; instructions only.

Analyzing MSBuild Failures with Binary Logs

This skill diagnoses MSBuild build failures from a .binlog file. The preferred path uses the binlog MCP server (Microsoft.AITools.BinlogMcp, exposed under the binlog MCP namespace) which is bundled with this plugin. If the MCP server is not available, fall back to the binlog replay workflow at the bottom.

Primary workflow — binlog MCP

The MCP server exposes structured tools for inspecting a .binlog without parsing text logs. Call them directly instead of replaying the binlog to a text file. Call tools/list for the MCP first if you are unsure which tools are available.

Important constraints:

  • The .binlog file is a binary format — do NOT try to cat, head, strings, or read it directly. Use only the MCP tools to query it.
  • The original source/project files might or might NOT be available on disk. Project files (.csproj, .props, .targets, App.config, etc.) - if you cannot locate them on disk, they can only be read from within the binlog via MCP tools (e.g., embedded/source file retrieval).
  • Synthesize findings as you go. Do not spend all available time investigating — once you have enough evidence, present your conclusions. A partial answer with clear reasoning is better than timing out mid-investigation.

Use the available MCP server tools to query the binary log for:

  • Build errors and warnings
  • MSBuild properties and their values
  • MSBuild items (PackageReference, ProjectReference, etc.)
  • Project evaluation data
  • Target execution details
  • File contents embedded in the binlog

Fallback workflow — text-log replay (when MCP is unavailable)

Use this only when the MCP server cannot be started (for example, on an older SDK or in an offline environment).

Replay the binlog to text logs

bash
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 note: Use -flp:"v=diag;logfile=full.log;performancesummary" (quoted semicolons).

Search the text logs

bash
cat errors.loggrep -n -B2 -A2 "CS0246" full.loggrep -i "CoreCompile.*FAILED\|Build FAILED\|error MSB" full.loggrep 'Target "CoreCompile"' full.log | grep -oP 'project "[^"]*"'

Generating a binlog (only if none exists)

bash
dotnet build /bl:build.binlog

Source and attribution

Source:dotnet/skillsinplugins/dotnet-msbuild/skills/binlog-failure-analysisat commit0608d89

License: MIT

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal