目标执行顺序
来自 MSDN: 目标构建顺序
确定目标构建顺序
MSBuild 确定目标构建顺序,如下所示:
- InitialTargets 目标已运行。
- 运行/ target 开关在命令行上指定的目标。如果在命令行上未指定目标,则运行 DefaultTargets 目标。如果两者都不存在,则运行遇到的第一个目标。
- 评估目标的 Condition 属性。如果 Condition 属性存在且计算结果为 false,则不执行目标,并且对构建没有进一步的影响。
- 在执行目标之前,将运行其 DependsOnTargets 目标。
- 在执行目标之前,将运行在 BeforeTargets 属性中列出它的任何目标。
- 在执行目标之前,会比较其 Inputs 属性和 Outputs 属性。如果 MSBuild 确定任何输出文件相对于相应的输入文件已过期,则 MSBuild 将执行目标。否则,MSBuild 会跳过目标。
- 执行或跳过目标后,将运行在 AfterTargets 属性中列出目标的任何目标。