2012-04-13 4 views
2

Мне нужно переместить общий ресурс файла, содержащий сборки TFS, поэтому я написал код, который просматривает коллекцию сборок и обновляет их местоположение. Я знаю, что код сделал что-то, потому что когда я отлаживаю код во втором запуске, droplocation теперь показывает новый путь unc. Однако, когда я захожу в командный проводник и нажимаю «drop location» для сборки, меня берут на прежнее место.Переместить Dropped TFS Builds

Что мне не хватает?

var buildServer = tpc.GetService<IBuildServer>(); 
         foreach (var build in buildServer.QueryBuilds(projectName)) 
         { 
          string newDropLocation = FixPath(build.DropLocation); 
          string newLogLocation = FixPath(build.LogLocation); 

          build.DropLocation = newDropLocation; 
          if(!String.IsNullOrEmpty(newLogLocation)) 
          { 
           build.LogLocation = newLogLocation; 
          } 
          build.Save(); 

          Console.WriteLine("------------"); 
          Console.WriteLine(newDropLocation); 
          Console.WriteLine(newDropLocationRoot); 
          Console.WriteLine(newLogLocation); 
         } 
+0

FWIW, FixPath - это просто вспомогательный метод, который выполняет string.replace для \\ olderserver \ share \ и \\ newserver \ share \ –

+0

Вы обновляете новый корень местоположения папок? –

+0

IBuildDetail.DropLocationRoot доступен только для чтения. У DropLocation и LogLocation есть сеттеры. –

ответ

0

Кажется, что эта функциональность теперь встроена в Community TFS Build Extensions. Диспетчер сборки сообщества TFS имеет возможность выполнять поиск и замену обновлений существующих сборников.

Смежные вопросы