Team Foundation Build Activitie“DownloadFiles”给出错误

时间:2012-04-04 08:27:45

标签: tfs tfs2010 tfsbuild

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

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

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

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

提前致谢..

3 个答案:

答案 0 :(得分:1)

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

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

我已解编译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)

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

有两个单独的Build活动,文件夹 ServerItem为DownloadFiles单个文件 ServerItem为DownloadFile。我希望它适用于DownloadFile