用途:说明 MSBuild 管道为 SDK、NuGet 包、仓库和用户提供的扩展钩子,帮助编写或审查构建扩展。
主要能力:CustomBefore/CustomAfter 钩子(默认路径含 v$(MSBuildToolsVersion),需 Exists() 检查,追加而非覆盖以串联多个钩子);通配符导入目录按字母顺序导入,可用数字前缀排序,涉及 $(MSBuildUserExtensionsPath)、$(MSBuildExtensionsPath)、$(MSBuildProjectExtensionsPath) 三种作用域;控制属性门控(ImportDirectoryBuildProps、ImportDirectoryBuildTargets、ImportProjectExtensionProps、ImportProjectExtensionTargets、ImportByWildcardBefore/After*);NuGet 包通过 build/ 与 buildTransitive/ 注入,文件名须与包 ID 一致,props 早导入、targets 晚导入;源码树与打包布局差异(.nuspec file 映射、csproj PackagePath、SDK 约定);导入守卫属性;Directory.Build 向上查找最近文件,嵌套需显式导入父级;自定义扩展点示例与常见陷阱。
使用方式:按资料中的 XML 片段配置属性与 Import,注意 Exists() 守卫、追加分号、文件名匹配。
适用场景:编写 SDK/NuGet 构建扩展、审查导入缺失误报。
限制:具体版本行为、平台差异等资料未提供。