【发布时间】:2018-01-27 21:47:29
【问题描述】:
输入:可选属性。 形成此目标的输入的文件。多个文件用分号分隔。文件的时间戳将与输出中文件的时间戳进行比较,以确定目标是否是最新的。有关详细信息,请参阅增量构建、如何:增量构建和转换。
问题
如果Inputs 中的文件实际上并不存在,会发生什么情况?
目标是否会被视为过期?
【问题讨论】:
标签: msbuild
输入:可选属性。 形成此目标的输入的文件。多个文件用分号分隔。文件的时间戳将与输出中文件的时间戳进行比较,以确定目标是否是最新的。有关详细信息,请参阅增量构建、如何:增量构建和转换。
问题
如果Inputs 中的文件实际上并不存在,会发生什么情况?
目标是否会被视为过期?
【问题讨论】:
标签: msbuild
当前的行为是在缺少输入时构建增量目标。也就是说,当无法找到输入列表中的文件时,目标将被视为过期。
此行为在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)")。
【讨论】: