在得到答案后,我发现我必须提供更多关于我的问题的信息,所以我改变了我的问题。
我们正在构建一个显示地图的Web应用程序。 地图可以由用户编辑并保存为xml文件。 有一个工具(exe应用程序)可以从命令行运行,它将xml转换为二进制格式,并将它们部署到映射应用程序。 运行该工具每个地图需要几分钟。 我正在尝试使用MSBuild自动构建脚本,该脚本从我们的构建服务器(Team City)运行,这将自动执行此过程。
所以,我想要的是拥有脚本,从源代码控制(TFS)检查地图并运行该工具。
但是因为它很慢,我想找到一种方法只针对更改的文件。
因此,如果xml没有改变,我不想运行该工具。
MSBuild是否有办法找到从源代码管理更新中更改的文件?
或者你知道怎么做吗? 我想到了,想出了将xml的最后一次修改存储在一个文本文件中,但我不喜欢这个想法。
正如我所说,我正在使用 源控制:TFS 构建脚本:MSBuild 构建服务器:团队城市答案 0 :(得分:0)
MsBuild具有内置功能,可以比较上次修改日期。 You'd see this in cases where you specify the Inputs and Outputs on a target, allowing the target to be skipped if the Inputs are older then the Outputs ...
在你的情况下,我建议使用Copy Task,将SkipUnchangedFiles设置为true。
<Copy SourceFiles="@(MapFiles)" DestinationFolder="$(DeployPath)" SkipUnchangedFiles="true" />