【问题标题】:Visual Studio Online TFS Build Task - File not being copiedVisual Studio Online TFS 构建任务 - 未复制文件
【发布时间】:2018-07-04 06:11:53
【问题描述】:

我正在尝试将 DLL 文件从指定位置复制到用于发布自动化的放置文件夹

我有使用 TFS 的 VS Online。

我在下面配置了一个简单的构建任务,其中要复制的源文件 CRMPackage.dll 位于 Debug 文件夹下:

当我运行构建任务时,我得到了一个成功的结果,但是 DLL 文件没有显示在 Drop 文件夹下

2018-01-25T02:33:08.7648437Z found 1 files
2018-01-25T02:33:08.7653520Z Copying d:\a\1\s\CodeBase\XXXXXXX.CRM\XXXXX.DeploymentPackage\CRMPackage\CRMPackage\bin\Debug\CRMPackage.dll to $\XXXX Dynamics CRM\CodeBase\XXXXX.CRM\Drop\CRMPackage.dll
2018-01-25T02:33:08.7772515Z ##[section]Finishing: Copy Files to: Drop

我在这里做错了什么?

【问题讨论】:

  • 是的,抱歉刚刚从我的长周末回来!感谢您的回复 Cece,我尝试了您所做的并使用了 $(build.artifactstagingdirectory) 但我不确定如何指定此变量。最后,我将 Target 目录更改为 d:\a\1\s\CodeBase****.CRM\Drop 并且成功了!
  • 变量 $(build.artifactstagingdirectory) 是预定义的。它是代理上的本地路径,任何工件在被推送到目的地之前都会复制到该路径。例如:c:\agent_work\1\a。查看此链接了解更多信息。
  • 是的,我已经接受了,非常感谢您的帮助!

标签: visual-studio tfs continuous-integration


【解决方案1】:

您不能在Target Folder 中指定服务器路径。如果有效,则意味着您的来源将被更改。

您需要输入文件夹路径(例如,d:\a\1\s)或 UNC 路径(需要私有构建代理)。在大多数情况下,您使用变量(例如 $(build.artifactstagingdirectory))指定此文件夹,因为您的托管代理可能无法访问托管构建代理计算机中的所有位置。

为了在主机上看到复制的文件,您可以在Copy files 任务之后添加一个任务Publish Build Artifacts。查看下面的截图:

这样就可以在Artifacts看到复制的文件了:

【讨论】:

    【解决方案2】:

    对于构建任务,我将 Target 文件夹更改为:

    d:\a\1\s\CodeBase******.CRM\Drop

    我设法让它工作。 现在,当我浏览我的人工制品时,我可以在 Drop 文件夹中看到文件 CRMPackage.dll。

    但是,我不确定如何使用 $(build.artifactstagingdirectory) 变量。我在哪里设置这个?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 2019-04-24
      • 2019-01-15
      • 1970-01-01
      • 2017-07-30
      相关资源
      最近更新 更多