binlog-generation

Generate MSBuild binary logs for dotnet build, test, pack, publish, and restore commands.

Updated Jul 20, 2026
One-click install
npx skills add https://github.com/Netcodr81/kinetic-reports --skill binlog-generation-netcodr81
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: binlog-generation
Source: https://github.com/Netcodr81/kinetic-reports/tree/main/.github/skills/binlog-generation
Command: npx skills add https://github.com/Netcodr81/kinetic-reports --skill binlog-generation-netcodr81

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Build failures and performance issues in .NET projects are hard to diagnose after the fact because console output lacks the detail needed for investigation. This Skill ensures every MSBuild invocation captures a binary log (binlog) so build execution traces are always available for analysis without re-running builds. ## Core Features & Use Cases - Automatic Unique Filenames: Uses the /bl:{} placeholder (MSBuild 17.8+ / .NET 8 SDK+) so every build produces a distinct binlog that never overwrites previous ones, with PowerShell escaping guidance (-bl:{{}}). - Mandatory Coverage of All MSBuild Commands: Enforces adding /bl:{} to dotnet build, test, pack, publish, restore, and direct msbuild invocations. - Fallback Naming and Verification: Provides a collision-free manual naming strategy when a fixed filename is required, plus commands to verify the .binlog file actually exists after the build. - Use Case: A developer's CI build fails intermittently. Because every build already ran with /bl:{}, the binlog for the failed run is immediately available for the binlog-failure-analysis skill instead of re-running the build. ## Quick Start Add /bl:{} to your next dotnet build command and confirm a .binlog file appears in the directory.

Frequently Asked Questions about binlog-generation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate a binlog with dotnet build?▼

Add the /bl:{} flag to your command, for example dotnet build /bl:{}. MSBuild replaces {} with a unique identifier so each build writes a distinct .binlog file. In PowerShell, escape the braces as dotnet build -bl:{{}}.

How do I create a binlog for dotnet test or dotnet publish?▼

Append /bl:{} to any MSBuild-based command, including dotnet test, dotnet pack, dotnet publish, and dotnet restore. Each invocation gets its own flag so logs never overwrite each other across configurations or retries.

Does the /bl:{} placeholder work in older MSBuild versions?▼

The {} placeholder requires MSBuild 17.8+ or .NET 8 SDK or later. On older versions, choose a filename that does not collide with existing .binlog files, such as incrementing a counter from the highest existing number.

Why does dotnet build /bl:{} fail in PowerShell?▼

PowerShell interprets curly braces specially, so the placeholder must be escaped as double braces: dotnet build -bl:{{}}. Bash and Windows cmd accept the single-brace form /bl:{} directly.

Why is no binlog file created after my build?▼

A build that fails before MSBuild starts, such as one with a bad argument, writes no binlog. Verify output with ls *.binlog, dir /b *.binlog, or Get-ChildItem *.binlog before proceeding to analysis.

When should I not use binlog generation?▼

Binlogs only apply to MSBuild-based builds; they do not work with non-MSBuild systems like npm, Maven, or CMake. Also, generating a binlog is not the same as analyzing one—use a dedicated failure-analysis skill to inspect an existing binlog.