我正在TFS 2010中自定义默认的构建过程模板。
我正在使用“DownloadFiles”构建活动,在服务器路径中我给出了“$ / TFS / Libraries / Foo.DLL”,当我运行执行定义时,其抛出错误为“访问路径'\ ServerName \ SharedFolder \ BuildName \ TempFolder'被拒绝。“。
但是当我将服务器路径作为“$ / TFS / Libraries”时,它将Libraries文件夹中的所有文件下载到共享的TempFolder中。
但我需要只下载一个文件。请帮忙..
提前致谢..
答案 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)
您需要授予运行构建服务的用户对共享文件夹的写入权限。
答案 2 :(得分:0)
有两个单独的Build活动,文件夹 ServerItem为DownloadFiles
,单个文件 ServerItem为DownloadFile
。我希望它适用于DownloadFile
。