用途:为编写 MSBuild 项目系统元素提供指导,适用 SDK 风格项目,版本假设 .NET 8.0+ SDK(MSBuild 17.8+)。边界上,基础解决方案布局与共享配置由 dotnet-project-structure 负责,MSBuild 错误解读与 CI 漂移诊断由 dotnet-build-analysis 负责。
主要能力:自定义目标(Target),用 BeforeTargets/AfterTargets/DependsOnTargets 控制执行顺序,注入标准构建管线宜用前两者,编排自有目标图用 DependsOnTargets;可通过 BuildDependsOn 等属性追加而非替换扩展列表。增量构建:用 Inputs/Outputs 比较时间戳,全部输出存在且新于输入则跳过;常见失败包括缺少 Outputs、输出易变、生成器无条件写入、复制未启用 SkipUnchangedFiles。导入顺序:Directory.Build.props 早于项目体,.targets 晚于项目体;.props 中属性用 Condition="'$(Prop)' == ''" 以便项目覆盖,.targets 中属性最后求值不可覆盖。项与元数据:Include/Exclude/Update/Remove 操作;SDK 项目自动包含 cs 文件,避免重复 Include 导致 NETSDK1022。条件:属性、项、目标、任务均可加 Condition,比较两侧加单引号,支持 AND/OR/! 与 Exists 等。属性函数:调用 .NET 静态方法与 MSBuild 内建函数,如 System.IO.Path.Combine、IsOSPlatform、VersionGreaterThanOrEquals 等。Directory.Build 高级模式包括 GetPathOfFileAbove 链式导入、条件守卫与 sentinel 属性防重复导入。
限制:资料未提供安装命令、收费或平台信息;不改变代码内容,具体使用需结合项目实际。