check-bin-obj-clash

Detect MSBuild output directory collisions from replayed binary logs.

1|Updated May 21, 2026
One-click install
npx skills add https://github.com/1k-off/umbraco-observability-playground --skill check-bin-obj-clash-1k-off
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: check-bin-obj-clash
Source: https://github.com/1k-off/umbraco-observability-playground/tree/main/.agents/skills/check-bin-obj-clash
Command: npx skills add https://github.com/1k-off/umbraco-observability-playground --skill check-bin-obj-clash-1k-off

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill identifies when multiple MSBuild evaluations write to the same OutputPath or IntermediateOutputPath, which commonly causes file-collision errors, “file in use” issues, or intermittent build failures.

Core Features & Use Cases

  • Diagnose OutputPath clashes by replaying an MSBuild binary log and grouping evaluations by OutputPath-related properties.
  • Diagnose IntermediateOutputPath clashes by including restore-phase evaluations where NuGet writes project.assets.json into the intermediate output path.
  • Handle common root causes including multi-targeting without TargetFramework in output paths, shared BaseIntermediateOutputPath/obj directories across projects, multi-solution builds, and extra global properties that create redundant project instances.
  • Use-case example: When a multi-project .NET solution fails with “Cannot create a file when that file already exists” during restore/build, this Skill helps confirm whether multiple projects/TFMs share the same intermediate directory and shows exactly which evaluations are responsible.

Quick Start

Generate an MSBuild binlog, replay it to a diagnostic text log, then compare OutputPath and IntermediateOutputPath across evaluations to locate the conflicting directory groups.

Frequently Asked Questions about check-bin-obj-clash

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

FAQPage Schema
How do I diagnose MSBuild output path collisions from a binary log?

Diagnose MSBuild output path collisions by replaying a binary log into a diagnostic text log, then grouping project evaluations by shared OutputPath and IntermediateOutputPath values to identify conflicting directory groups.

Why does my .NET multi-targeting build fail with file in use errors during NuGet restore?

File in use errors during NuGet restore often occur when multiple MSBuild evaluations share the same IntermediateOutputPath, causing parallel writes to project.assets.json. Analyzing binlog evaluations confirms which target frameworks share the intermediate directory.

What causes intermittent file creation errors in parallel MSBuild builds?

Intermittent file creation errors in parallel MSBuild builds are caused by redundant project instances sharing BaseIntermediateOutputPath or obj directories, often triggered by extra global properties or multi-solution invocations writing to the same paths.

Can I detect shared obj directories across multiple MSBuild project evaluations?

You can detect shared obj directories by replaying an MSBuild binlog with diagnostic output, filtering restore and non-restore evaluations, and applying grouping-by-path logic to report exactly which evaluations share IntermediateOutputPath values.

Do I need a diagnostic text log to find OutputPath clashes in MSBuild?

You need to replay an MSBuild binary log to generate a diagnostic text log, which is required to parse evaluation details and compare OutputPath-related properties across multiple project instances to locate clashing directories.