【问题标题】:MSBuild to deploy changed filesMSBuild 部署更改的文件
【发布时间】:2014-03-14 01:55:24
【问题描述】:

得到答案后,我发现我必须就我的问题提供更多信息,所以我改变了我的问题。

我们正在构建一个显示地图的 Web 应用程序。 地图可以由用户编辑并保存为xml文件。 有一个可以从命令行运行的工具(exe 应用程序)将 xml 转换为二进制格式,并将它们部署到映射应用程序。 每张地图运行该工具需要几分钟时间。 我正在尝试使用 MSBuild 自动构建脚本,该脚本从我们的构建服务器(Team City)运行,它将自动执行此过程。

所以,我想要的是拥有脚本,从源代码控制 (TFS) 中查看地图并运行该工具。

但是因为它很慢,所以我想找到一种方法来只对更改的文件执行此操作。

所以,如果 xml 没有改变,我不想运行该工具。

MSBuild 有没有办法从源代码管理中找到因更新而更改的文件?

或者你知道怎么做吗? 我想了想,想出了将最后修改的xml存储在一个文本文件中,但我不喜欢这个想法。

正如我所说,我正在使用 源代码控制:TFS 构建脚本:MSBuild 搭建服务器:Team City

【问题讨论】:

    标签: tfs msbuild continuous-integration


    【解决方案1】:

    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" />
    

    【讨论】:

    • 感谢您的意见。我正在尝试找到如何使用它。所以,如果你有想法,请告诉我我的问题更复杂。我修改了我的问题以进一步解释我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多