SuperAPI AI 工具集

dotnet-build-analysis

编程与开发

查看项目

更新于 10-16 07:23

技能介绍

用途:帮助代理解读并处理 MSBuild 构建输出,涵盖错误码前缀、NuGet 还原失败、分析器警告解读、多目标框架构建差异,以及“本地通过、CI 失败”的诊断模式。每个子节包含示例输出、诊断步骤与修复模式。

主要能力:解读 MSBuild 错误码前缀(CS、MSB、NU、CA、IDE、NETSDK);诊断并解决 NuGet 还原失败;分析器警告分诊与抑制指引;CI 与本地构建漂移诊断。

错误码前缀:CS 来自 Roslyn C# 编译器,是源码语言层问题;MSB 来自 MSBuild 引擎,指项目文件、目标失败或构建系统配置错误;NU 来自 NuGet 包管理器,出现在还原或打包操作中;IDE 来自 Roslyn IDE 分析器,用于代码风格约束,通常为警告;CA 来自 .NET 代码分析 SDK 分析器,涉及 API 设计、性能、可靠性与安全规则。

NuGet 还原失败:常见模式包括找不到包、版本冲突和私有源身份验证失败。可使用 dotnet nuget list source 查看已配置源,检查项目目录向上查找的 nuget.config,必要时在 nuget.config 中添加私有源与 packageSourceMapping,或运行 dotnet nuget update source 配置凭据。

分析器警告:先判断前缀(CA 为代码分析,IDE 为代码风格),检查严重级别(除非设置了 TreatWarningsAsErrors,否则警告不会中断构建),判断规则是否适用于项目类型,再决定修复代码、在 .editorconfig 中配置严重级别,或附带文档化理由进行抑制。

严重级别:Error 导致构建失败必须修复;Warning 构建成功,需修复或在 .editorconfig 中配置;Suggestion 构建成功并在 IDE 中显示;Hidden 不显示。可通过 .editorconfig 如 dotnet_diagnostic.CS8600.severity = error 提升或抑制规则。

抑制条件:仅当分析器无法理解代码的安全性保证、规则不适用于项目类型(如 ASP.NET Core 中的 CA2007),且提供了文档化理由时才可接受。

多目标框架构建:MSBuild 会为每个 TFM 分别构建,错误可能只出现在某个目标。诊断行带 [项目路径 -> TFM] 后缀标识失败目标,末尾有“Build succeeded/Failed for netX.0”汇总。修复可用预处理指令 #if NET9_0_OR_GREATER 区分 TFM,或在项目文件中按 TFM 条件引用包。

CI 漂移:本地通过而 CI 失败的构建失败几乎总是……(资料在此处截断,未提供后续内容)。

范围外:编写或修改 .csproj 文件、项目结构决策、常见代理代码错误由其他技能处理。

先决条件:.NET 8.0+ SDK、MSBuild(随 .NET SDK 提供),并了解 SDK 风格项目格式。