msbuild目标元素 - 如果Inputs中的文件不存在,该怎么办?

时间:2018-01-27 21:47:29

标签: msbuild

Target Element (MSBuild)

输入 :可选属性。 形成此目标输入的文件。多个文件由分号分隔。将文件的时间戳与输出中文件的时间戳进行比较,以确定目标是否是最新的。有关更多信息,请参阅增量构建,如何:增量构建和转换。

问题
如果Inputs中的文件确实存在,会发生什么?
目标是否会被视为过时

1 个答案:

答案 0 :(得分:2)

目前的好处是,当缺少输入时,会建立增量目标。也就是说,当无法找到输入列表中的文件时,目标将被视为已过期。

此行为在TargetUpToDateChecker中实现,并生成如下消息:

Building target "Build" completely.
Input file "input1.txt" does not exist.

请注意,虽然丢失的文件会导致重建,但更改输入元素的文件并不重要 - 例如当第一个版本具有Inputs="a.txt;b.txt"且第二个版本具有Input="a.txt"时,目标仍然是最新的。如果输入列表由使用模式创建的项填充(例如<Foo Include="*.txt" />项和Input="@(Foo)"),则会发生这种情况。