SuperAPI AI 工具集

msbuild-antipatterns

通用与其它

查看项目

更新于 10-16 00:32

技能介绍

用途:这是一个 MSBuild 反模式目录,供审查、审计或清理 .csproj、.vbproj、.fsproj、.props、.targets 等构建文件时使用。每条条目按“气味(要查找什么)—为什么不好(对构建、可维护性或正确性的影响)—修复(具体改写)”的格式组织。

主要能力:收录编号条目 AP-01 至 AP-15,覆盖用 <Exec> 执行已有内置任务的操作、条件表达式未加引号、硬编码绝对路径、重复声明 SDK 默认值、SDK 风格项目中手工列出文件、用 <Reference>+HintPath 引用 NuGet 包、分析器/工具包缺少 PrivateAssets="all"、跨多个项目复制粘贴属性、包版本分散未用中央包管理、单体 Target、自定义 Target 缺少 Inputs/Outputs、在 .targets 而非 .props 中设默认值、Import 缺少 Exists() 守卫、路径反斜杠问题、多作用域无条件覆盖属性。

使用方式:扫描项目文件时逐条对照目录中的气味与修复建议。部分条目给出内置任务替代表(如 mkdir→<MakeDir>、copy→<Copy>、del→<Delete>、move→<Move>、echo→<WriteLinesToFile>、touch→<Touch>)和推荐路径属性($(MSBuildThisFileDirectory)、$(MSBuildProjectDirectory)、$([MSBuild]::GetDirectoryNameOfFileAbove(...))、$([MSBuild]::NormalizePath(...)))。

适用场景:.NET 项目构建文件审查、迁移到 SDK 风格项目、CI 构建优化、增量构建排查。

限制:资料未提供安装命令、收费信息或平台要求;部分条目引用外部文档与同仓库其他技能(如 msbuild-modernization、directory-build-organization、incremental-build、dotnet-msbuild/extension-points),其内容未在本次资料中展开。F# 项目因编译顺序依赖需显式列出文件,属例外。