binlog-generation
Generate MSBuild binary logs (binlogs) for build diagnostics and analysis. USE FOR: adding /bl:{} to any dotnet build, test, pack, publish, or restore command to capture a full build execution trace, prerequisite for binlog-failure-analysis and build-perf-diagnostics skills, enabling post-build investigation of errors or performance. Requires MSBuild 17.8+ / .NET 8 SDK+ for {} placeholder; PowerShell needs -bl:{{}}. DO NOT USE FOR: non-MSBuild build systems (npm, Maven, CMake), analyzing an existing binlog (use binlog-failure-analysis instead).
npx skills add dotnet/skills --skill binlog-generation --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Generate Binary Logs **Pass the `/bl` switch when running any MSBuild-based command.** This is a non-negotiable requirement for all .NET builds. ## Commands That Require /bl You MUST add the `/bl:{}` flag to: - `dotnet build` - `dotnet test` - `dotnet pack` - `dotnet publish` - `dotnet restore` - `msbuild` or `msbuild.exe` - Any other command that invokes MSBuild ## Preferred: Use `{}` for Automatic Unique Names > **Note:** The `{}` placeholder requires MSBuild 17.8+ / .NET 8 SDK or later. The `{}` placeholder in the binlog filename is replaced by MSBuild with a unique identifier, guaranteeing no two builds ever overwrite each other — without needing to track or check existing files. ```bash # Every invocation produces a distinct file automatically dotnet build /bl:{} dotnet test /bl:{} dotnet build --configuration Release /bl:{} ``` **PowerShell requires escaping the braces:** ```powershell # PowerShell: escape { } as {{ }} dotnet build -bl:{{}} dotnet test -bl:{{}} ``` ## Why This Matters 1. **Unique names prevent overwrites** - You can always go back and analyze previous builds 2. **Failure analysis** - When a build fails, the binlog is already there for immediate analysis 3.
- Commands That Require /bl
- Preferred: Use {} for Automatic Unique Names
- Why This Matters
- Examples
- One build = one binlog
- Verify the binlog exists
- When a Specific Filename Is Required
- Cleaning the Repository
Every invocation produces a distinct file automatically
dotnet build /bl:{}
dotnet test /bl:{}
dotnet build --configuration Release /bl:{}
dotnet build -bl:{{}}
dotnet test -bl:{{}}
dotnet build
dotnet test
dotnet build /bl
dotnet build -c Debug /bl:{} # unique fileWhat does the binlog-generation skill do?
Generate MSBuild binary logs (binlogs) for build diagnostics and analysis. USE FOR: adding /bl:{} to any dotnet build, test, pack, publish, or restore command to capture a full build execution trace, prerequisite for binlog-failure-analysis and build-perf-diagnostics skills, enabling post-build investigation of errors or performance. Requires MSBuild 17.8+ / .NET 8 SDK+ for {} placeholder; PowerShell needs -bl:{{}}. DO NOT USE FOR: non-MSBuild build systems (npm, Maven, CMake), analyzing an existing binlog (use binlog-failure-analysis instead).
How do I install it?
Run `npx skills add dotnet/skills --skill binlog-generation --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From dotnet/skills, a repository with 4,927 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
