【问题标题】:copy files from TFS to build drop location using copy directory activity使用复制目录活动将文件从 TFS 复制到构建放置位置
【发布时间】:2013-04-28 20:07:01
【问题描述】:

我的情况,当我的构建成功时,我想从文件夹 TFS 复制到构建放置位置
我正在使用复制目录活动,在复制活动目录中

  1. 目标目录="构建放置位置"
BuildDetail.DropLocation
  1. 源目录="TFS Floder"

我知道构建代理从 TFS 获取源代码到它的机器上的这条路径

$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)

,所以我想如何在复制活动中使用此路径

【问题讨论】:

    标签: tfs tfsbuild tfs-process-template


    【解决方案1】:

    在构建工作流 SourcesDirectory 中有一个属性保存源文件夹,如果你没有对源做任何花哨的事情,并且定义是基于默认的,它应该是你需要的。

    它基于以下内容

    String.Format("{0}\Sources", BuildDirectory)
    

    BuildDirectory 是从构建过程中检索的,并且是代理中定义的位置,通常作为您的链接 ($(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath))

    【讨论】:

    • BuildDirectory 只能在 Run on Agent 中访问,无法从 Over All Build Process 访问它我试图让 BuildDirectory 对 Over All Build Process 可访问,但它没用
    • 好吧,您无法在代理构建目录有机会运行之前获得它的值,如果您在完成后需要它,您必须在更高范围内定义自己的变量并在构建代理期间为其赋值范围,或将您的活动移到代理范围内,因为它取决于其资源
    • 1- 添加 myvaribale 和 scoop Over All Build Process Sequence 2- 添加 Assign Task 和 Scoop Run On Agent 序列,包含变量=BuildDirecotry , Pre-Last Task 在这个 Scoop 3- 添加 WriteBuildWarning 和 Scoop Run在代理上,打印 myVariable ,此 Scoop 中的最后一个任务,效果很好 4-在所有构建过程中添加 WiteBuildWarning ,打印 myVariable ,此 Scoop 中的最后一个任务无用
    • 为什么不能在 Run On Agent 中进行复制?
    • @DylanSmith,它在 Run On Agent 中运行良好,但我很惊讶为什么它在整个构建过程中运行不佳。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 2014-09-23
    • 2014-02-22
    • 1970-01-01
    相关资源
    最近更新 更多