使用TFS API C#从TFS中读取文件中的内容

时间:2015-05-22 01:38:21

标签: c# tfs msbuild

可能是重复但我找不到合适的答案。

是否可以在启动MSBuild之前从TFS上的文件中读取内容?

我正在使用以下内容:

 TfsTeamProjectCollection server = new TfsTeamProjectCollection(new Uri("https://hasinc.visualstudio.com/DefaultCollection"));
 VersionControlServer version = server.GetService(typeof(VersionControlServer)) as VersionControlServer;   
 Item item = version.GetItem(@"$\SomeProject\SomeFile.cs");

我提供了服务器路径,并且我检索了正确的“项目”。我可以阅读一些属性,例如内容长度。但我怎么能读取文件?

我需要阅读内容并提取一些具体信息!

在自定义活动方法的TFS构建过程中发生了这个过程:

protected override void Execute(CodeActivityContext context)
{
}

有可能实现吗?

1 个答案:

答案 0 :(得分:5)

关于下载文件的一些想法:

DownloadFile方法

您可以使用DownloadFile方法将文件下载到临时文件:

TfsTeamProjectCollection server = new TfsTeamProjectCollection(new Uri("https://hasinc.visualstudio.com/DefaultCollection"));
VersionControlServer version = server.GetService(typeof(VersionControlServer)) as VersionControlServer;   
Item item = version.GetItem(@"$\SomeProject\SomeFile.cs");
string tempFileName = System.IO.Path.GetTempFileName();
item.DownloadFile(tempFileName);

下载文件活动

而不是将文件放在自定义活动中,Team Build 2012& 2013都支持DownloadFiles activity,它允许自定义构建下载不在工作区中的文件。

为构建源设置添加额外路径

您可以编辑构建定义的源设置,以将其他源控件文件夹映射到构建代理文件夹。