团队基础建设活动中的“DownloadFiles”是给错误
我定制在2010年TFS团队基础建设活动中的“DownloadFiles”是给错误
默认生成过程模板,我使用“DownloadFiles”建设活动,并在服务器的路径我已经给“$/TFS /库/Foo.DLL“,当我运行执行定义其抛出错误为”访问路径'\ ServerName \ SharedFolder \ BuildName \ TempFolder'被拒绝。“
但是,当我给服务器路径为“$/TFS/Libraries”时,它将Libraries文件夹中的所有文件下载到共享的TempFolder中。
但我只需要下载一个文件。请帮助..
在此先感谢..
有两个独立的共建活动,DownloadFiles
为文件夹 ServerItem并为单个文件 ServerItem一个DownloadFile
。
我期望它应该与DownloadFile
一起使用。
'DownloadFile'似乎已被弃用:http://msdn.microsoft.com/en-us/library/vstudio/gg265783.aspx#Activity_Download_Files – Jonathan 2013-10-28 12:59:04
现在,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)
。
Team Foundation Build Service正在“TFSService”用户帐户下运行,并且此帐户完全控制共享位置并添加到“Project Collection Build Service Accounts”中。下载文件夹工作正常,但下载单个文件有问题。 – BABA 2012-04-04 09:51:45