MSBuild,输入和输出相同的文件?

时间:2016-08-17 16:16:24

标签: msbuild

我有一个MSBuild目标,它可以转换文件,即输入和输出文件是同一个文件。在这种情况下,如何让Visual Studio正确处理集成构建?我必须移动文件吗?

1 个答案:

答案 0 :(得分:1)

简短的回答:永远不要在构建期间将文件转换到位。任何转换都必须在其他位置创建一个新文件,或者使用不同的名称。

答案很长。 MSBuild根据时间戳跟踪文件是否是最新的。这与make和大多数其他构建系统使用的机制相同。这允许您的增量构建仅执行必要构建步骤的部分重建。请注意,为了使增量构建工作,您必须在目标的InputsOutputs属性中声明所有输入和输出文件。如果您在Inputs以及Outputs中拥有相同的文件,则会将其视为最新版本,并且不会执行目标,这会破坏您的构建。

如果您不关心增量构建,只需创建一个没有InputsOutputs的目标,就可以让它真正发挥作用。在这种情况下,将始终执行目标。这需要你每次都在全力以赴的价格。