2015-05-22 1 views
2

Возможно, это дубликат, но я не нашел правильного ответа.Чтение содержимого из файла, находящегося в TFS с TFS API C#

Возможно ли прочитать содержимое из файла, находящегося на TFS, до запуска MSBuild?

Я использую следующие:

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) 
{ 
} 

Можно ли добиться этого?

+0

Какую версию TFS Build вы используете? – bradfordrg

+0

Я использую TFS 2013. – kat1330

ответ

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); 

DownloadFiles активность

Rathe r, чем получение файла в пользовательской деятельности, Team Build 2012 & 2013 поддерживают как DownloadFiles activity, что позволяет настраивать сборку для загрузки файлов (файлов), а не в рабочую область.

добавить дополнительный путь к сборке Настройки Источник

следовало изменить Источник Настройки вашего определения построения, чтобы отобразить дополнительную папку управления источником в папку сборки агента.