【问题标题】:TFS 2010 Build, constant drop location, random access issueTFS 2010 Build,恒定放置位置,随机访问问题
【发布时间】:2014-06-02 09:36:57
【问题描述】:

我们正在使用 TFS 2010 Build 在固定位置交付库。 ( \\server\product-R0\latest )

其他团队项目从该位置引用该库。

在我的构建过程中,我检查构建和单元测试是否通过,如果没问题,我:

  1. 转换 web/app.config
  2. 使用“DeleteDirectory”活动删除最新文件夹
  3. 使用“CreateDirectory”活动创建最新文件夹
  4. 使用“CopyDirectory”活动复制文件夹中的二进制文件

我先删除文件夹,因为如果我们重命名程序集,旧的不会被删除。

这个问题是随机的,有 40% 的时间发生:

TF270002:从 'D:\Builds\1\FooTeam\BarService\Binaries' 到 '\\nas\Builds\BarService-R0\Latest'。

详细信息:访问路径 '\\nas\Builds\BarService-R0\Latest\SomeFile.dll' 被拒绝。

如果您多次启动构建,它会起作用。

我尝试了“在步骤之间放置睡眠以查看会发生什么”的通常愚蠢的想法,但这并没有解决问题,它似乎只是降低了它发生的可能性。

这就像 TFS 在删除目录的同时尝试复制,有时它会挂在目录创建步骤中。

有人吗?谢谢!

【问题讨论】:

    标签: tfs workflow-foundation tfsbuild


    【解决方案1】:

    最优雅的解决方案是创建链接而不是复制,例如

    mklink /J D:\Drops\MyBuild_LatestGood D:\Drops\MyBuild_2014-06-13
    

    另外:不涉及复制,相同的 ACL。 警告:当 Drop 共享位于构建服务器上时,此命令仅在本地有效。在 NAS 的情况下也有一些选项,只要您被允许执行远程命令(例如 SSH)。

    另一种选择是在所需文件夹上创建网络共享,即使磁盘是远程的,只要它位于 Windows 服务器上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-13
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多