MSBuild会针对最新目标发出以下消息:
Skipping target "MyTarget" because all output files are up-to-date with respect to the input files.
如何进行实际检查?
答案 0 :(得分:11)
目标元素可以同时具有Inputs属性,表示 什么项目目标>期望作为输入和输出属性, 表示它作为输出产生的项目 MSBuild尝试查找1对1映射 这些属性的值之间。如果存在1对1映射, MSBuild将每个输入项的时间戳与时间戳进行比较 其相应的输出项目。输出没有1对1的文件 映射与所有输入文件进行比较。考虑一个项目 如果其输出文件与其输入相同的年龄或更新,则为最新的 文件或文件。
如果所有输出项都是最新的,MSBuild会跳过目标。这个 目标的增量构建可以显着改善构建 速度。如果只有一些文件是最新的,MSBuild将执行目标 但跳过最新的项目,从而带来所有项目 最新。这称为部分增量构建。
答案 1 :(得分:6)
MSBuild会比较输入和输出文件时间戳,以确定文件是否是最新的。有关详细信息,请参阅Incremental Builds。