копировать файлы из TFS для создания местоположения перетаскивания с помощью операции копирования каталога

В моем случае я хочу скопировать из папки TFS, чтобы создать место для перетаскивания, когда моя сборка прошла успешно
я использую активность каталога копирования в каталоге активности копирования

  1. destination directory = "Место размещения сборки"
BuildDetail.DropLocation
  1. исходный каталог = "TFS Floder"

Я знаю, что агент сборки получает исходный код из TFS на свой компьютер по этому пути

$ (SystemDrive) \ Builds \ $ (BuildAgentId) \ $ (Путь сборки)

Итак, как я хочу получить этот путь, чтобы использовать его при копировании


person mohammed sameeh    schedule 28.04.2013    source источник


Ответы (1)


В рабочем процессе сборки SourcesDirectory есть свойство, которое содержит исходную папку, если вы не делаете ничего особенного с источниками, а определение основано на умолчанию, это должно быть то, что вам нужно.

Он основан на следующих

String.Format("{0}\Sources", BuildDirectory)

BuildDirectory извлекается из процесса сборки и является местоположением, обычно определенным в агенте как ваш связанный ($ (SystemDrive) \ Builds \ $ (BuildAgentId) \ $ (BuildDefinitionPath))

person drk    schedule 29.04.2013
comment
BuildDirectory доступен только в Run on Agent, не могу получить к нему доступ из общего процесса сборки. Я пытался сделать BuildDirectory доступным для общего процесса сборки, но это бесполезно - person mohammed sameeh; 29.04.2013
comment
Ну, вы не можете получить значение каталога сборки агентов до того, как у него будет возможность запуститься, если оно вам понадобится после его завершения, вам нужно будет определить свою собственную переменную в более высокой области и присвоить ей значение во время области действия агента сборки или переместить свою активность внутри агента объем, поскольку это зависит от его ресурсов - person drk; 29.04.2013
comment
1- добавить myvaribale с совком по всей последовательности процесса сборки 2- добавить задачу назначения с Scoop Run On Agent Sequece, содержит переменную = BuildDirecotry, Pre-Last Task в этом Scoop 3- добавить WriteBuildWarning с Scoop Run On Agent, печатает myVariable, Last Task в этом совке работает хорошо 4- добавить WiteBuildWarning с совком по всему процессу сборки, печатает myVariable, последняя задача в этом совке работает бесполезно - person mohammed sameeh; 29.04.2013
comment
Почему вы не можете сделать копию внутри агента Run On? - person Dylan Smith; 29.04.2013
comment
@ DylanSmith, он хорошо работает в Run On Agent, но я удивлен, почему он не работает в общем процессе сборки. - person mohammed sameeh; 30.04.2013
comment
Выходные данные компиляции и сборки генерируются в агенте сборки, за пределами выполнения активности агента у вас нет к ним доступа. Подавляющее большинство задач сборки должно выполняться на агенте, именно так была разработана TFS Build. - person Dylan Smith; 30.04.2013