MSBuild如何检查目标是否是最新的?

时间:2011-08-08 12:48:33

标签: msbuild build-process

MSBuild会针对最新目标发出以下消息:

Skipping target "MyTarget" because all output files are up-to-date with respect to the input files.

如何进行实际检查?

2 个答案:

答案 0 :(得分:11)

检查Incremental Build

的流程
  

目标元素可以同时具有Inputs属性,表示   什么项目目标>期望作为输入和输出属性,   表示它作为输出产生的项目   MSBuild尝试查找1对1映射   这些属性的值之间。如果存在1对1映射,   MSBuild将每个输入项的时间戳与时间戳进行比较   其相应的输出项目。输出没有1对1的文件   映射与所有输入文件进行比较。考虑一个项目   如果其输出文件与其输入相同的年龄或更新,则为最新的   文件或文件。

     

如果所有输出项都是最新的,MSBuild会跳过目标。这个   目标的增量构建可以显着改善构建   速度。如果只有一些文件是最新的,MSBuild将执行目标   但跳过最新的项目,从而带来所有项目   最新。这称为部分增量构建。

答案 1 :(得分:6)

MSBuild会比较输入和输出文件时间戳,以确定文件是否是最新的。有关详细信息,请参阅Incremental Builds