【问题标题】:copy files after successful build构建成功后复制文件
【发布时间】:2011-04-12 01:33:15
【问题描述】:

我正在开发一个应用程序,每天会有多个开发人员签到。我只想在签入并成功构建 TFS 后将最新文件复制到共享位置。目前我正在使用类似

的后期构建脚本

Attrib -r "$(ProjectDir)Data*." /S & xcopy /S /Y /I "$(ProjectDir)Data*." "ShareLocation"

但最大的问题是,即使有人在本地进行了一些更改然后进行本地构建,所有文件都会被复制到共享位置。但我只想复制签入和成功构建 TFS 后的文件。

有人可以帮助解决这个问题的最佳解决方案吗?我不是构建工程师,对 MSBuild 知之甚少,所以如果你的答案是 MSBuild,那么请分享一些好的示例,而不是提供 MSDN 链接。提前致谢。

普里坦

【问题讨论】:

    标签: visual-studio-2008 visual-studio-2010 msbuild build-process


    【解决方案1】:

    如果您有一个用于 TFS 构建的专用服务器,那么您可以调用一个单独的 .bat 文件作为构建后事件。

    在构建后事件中,您可以指定服务器名称,即检查是否在该远程服务器上完成构建。如果构建在远程服务器上,您可以在此处使用复制命令。

    示例:IF /i "%COMPUTERNAME%" == "servername"(命令)

    【讨论】:

    • 我用一个目标更新了我的默认 TFSBuild.Proj 文件。因此,每当有人签入某些东西时,只有这样它才会被复制到我的服务器上。但感谢大家的帮助。
    【解决方案2】:

    您可以添加一个条件,即只有发布版本才会执行命令:

    如果 "$(ConfigurationName)" == "Release"(命令)

    【讨论】:

      【解决方案3】:

      感谢大家的帮助。这是我在 TFSBuild.proj 文件中使用的并解决了我的问题

      <Target Name="AfterCompile">
      <Exec Command="Attrib -r &quot;$(SolutionRoot)\<SolutionFolder>\*.*&quot; /S"></Exec>
      <Exec Command="xcopy /S /Y /I &quot;$(SolutionRoot)\<SolutionFolder>\*.*&quot; &quot;<server location>;" />     
      

      【讨论】:

        猜你喜欢
        • 2015-06-13
        • 1970-01-01
        • 2020-02-04
        • 2013-03-28
        • 1970-01-01
        • 1970-01-01
        • 2012-09-05
        • 2015-08-15
        • 2023-03-10
        相关资源
        最近更新 更多