【问题标题】:Team Foundation Build Activitie "DownloadFiles" is giving errorTeam Foundation Build Activity“DownloadFiles”给出错误
【发布时间】:2012-04-17 22:42:05
【问题描述】:

我正在自定义 TFS 2010 中的默认构建过程模板。

我正在使用“DownloadFiles”构建活动,并且在服务器路径中我给出了“$/TFS/Libraries/Foo.DLL”,当我运行执行定义时,它的抛出错误为“访问路径'\ServerName\SharedFolder \BuildName\TempFolder' 被拒绝。”。

但是当我将服务器路径指定为“$/TFS/Libraries”时,它会将 Libraries 文件夹中的所有文件下载到共享的 TempFolder 中。

但我只需要下载一个文件。请帮忙..

提前谢谢..

【问题讨论】:

    标签: tfs tfsbuild


    【解决方案1】:

    现在,DownloadFiles 仅适用于整个文件夹:

    • ServerPath="$/proj/path" - 效果很好,全部下载到LocalPath
    • ServerPath="$/proj/path/name.ext" - 无聊。

    我已经反编译了DownloadFiles 以了解原因:首先它获取服务器项目列表,在我们的例子中只是$/proj/path/name.ext。然后,它会像这样计算本地路径:

    localItemPath = Path.Combine(LocalPath,VersionControlPath.MakeRelative(ServerItem, ServerPath));

    在这一行中,活动假定ServerPath 是一个路径。如果不是,则 MakeRelative 将无法识别它,并且本地路径将是 LocalPath/$/proj/path/name.ext,正如 OP 所观察到的那样。

    此外,如果 ServerPath 不是规范的 - 例如,$/proj/path/../path2,也会发生同样的情况。解决方法:使用VersionControlPath.GetFullPath(myNonCanonicalPath)

    【讨论】:

      【解决方案2】:

      您需要授予运行构建服务的用户对共享文件夹的写入权限。

      http://msdn.microsoft.com/en-us/library/cc668757.aspx

      【讨论】:

      • Team Foundation Build Service 在“TFSService”用户帐户下运行,并且该帐户对共享位置具有完全控制权,并添加到“项目集合构建服务帐户”中。下载文件夹工作正常,但是下载单个文件有问题。
      【解决方案3】:

      有两个单独的构建活动,DownloadFiles 用于文件夹 ServerItem,DownloadFile 用于单个文件 ServerItem。
      我希望它应该使用DownloadFile

      【讨论】:

      猜你喜欢
      • 2014-01-01
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多