1

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

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

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

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

提前致谢..

4

3 回答 3

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.extOP 观察到的。

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

于 2013-10-28T14:14:21.310 回答
0

有两个单独的 Build 活动,DownloadFiles一个用于文件夹ServerItem,一个DownloadFile用于单个文件ServerItem。
我希望它应该与DownloadFile.

于 2012-04-06T09:15:31.970 回答
0

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

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

于 2012-04-04T09:38:39.300 回答