SuperAPI AI 工具集

check-bin-obj-clash

通用与其它

查看项目

更新于 10-16 00:32

技能介绍

用途:识别多个 MSBuild 项目评估共享同一 OutputPath 或 IntermediateOutputPath 的情况,这类冲突会导致并行构建文件访问冲突、输出文件缺失或被覆盖、间歇性构建失败、文件占用错误,以及 NuGet 还原时出现“Cannot create a file when that file already exists”(通常意味着多个项目共享写入 project.assets.json 的 IntermediateOutputPath)。冲突可能发生在不同项目共享输出目录、多目标框架构建未在路径中包含目标框架、以及同一次构建中同一项目被多个解决方案构建等场景。

主要能力:通过 binlog MCP 工具检查 .binlog,列出参与构建的项目、查看每个项目的评估与全局属性、查询 OutputPath、IntermediateOutputPath、BaseOutputPath、BaseIntermediateOutputPath,并使用 double_writes 工具直接检测被多个项目实例写入的文件。分析时需忽略 BuildProjectReferences=false 的 P2P 元数据查询实例;分析 OutputPath 冲突时排除还原阶段评估,分析 IntermediateOutputPath 冲突时则包含还原阶段评估。

使用方式:先按 binlog-generation 技能生成二进制日志,再调用 MCP 的 overview、projects、evaluations、evaluation_global_properties、properties、double_writes 等工具。.binlog 是二进制格式,不要用 cat、head、strings 直接读取。MCP 不可用时回退到文本日志重放:dotnet msbuild build.binlog -noconlog -fl -flp:v=diag;logfile=full.log,再用 grep 检索项目、评估、全局属性和输出路径。

适用场景:NuGet 还原报文件已存在、文件被其他进程占用、重试才成功的间歇性构建失败、输出文件缺失或意外覆盖。

限制:资料未提供该技能的安装方式、收费、平台支持范围及具体命令参数之外的细节;多解决方案构建的日志会交错,需借助 SolutionFileName 等属性区分归属。