目标执行顺序

来自 MSDN: 目标构建顺序

确定目标构建顺序

MSBuild 确定目标构建顺序,如下所示:

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