Как установить путь управления версиями к пользовательским сборкам для пользовательских задач MSBuild

В контроллерах/агентах сборки TFS 2010 есть возможность установить путь управления версиями к пользовательским сборкам, которые будут доступны на всех агентах сборки. В документации указано, что это работает для настраиваемых действий рабочего процесса, а также для настраиваемых задач MSBuild (примерно в середине страницы):

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

Кто-нибудь знает, как эту функцию можно использовать для пользовательских задач MSBuild? Я зарегистрировал в системе управления версиями сборку с пользовательской задачей и установил для параметра нашего контроллера сборки правильный путь управления версиями. Но я не знаю, где сборка будет находиться в агенте сборки и как я могу сослаться на нее из моего файла целей MSBuild (т. е. UsingTask).

Я даже искал сборку на билдагенте, но не нашел...

Любая помощь очень ценится!


person Daniel    schedule 12.08.2010    source источник


Ответы (3)


Вот ответ: содержимое пути контроля версий хранится в агенте сборки в этой папке:

C:\Documents and Settings\<user>\Local Settings\Temp\BuildAgent\<num>\

где ‹пользователь› — это учетная запись, которая запускает службу сборки, а ‹num› — это номер вашего агента сборки.

Я понятия не имею, почему его не было сначала и что заставило агента сборки наконец получить его из системы управления версиями. Может быть, требуется просто немного терпения, если путь контроля версий изменен или его содержимое обновлено?

person Daniel    schedule 16.08.2010
comment
Если служба сборки работает как NT AUTHORITY\NETWORK SERVICE, вы найдете эту папку здесь в более новых версиях Windows: `C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\BuildAgent\‹num›`. - person Martin Liversage; 04.06.2014

Это возможно, но более простое решение — просто зарегистрировать свои пользовательские задачи MSBuild в общем расположении в системе управления версиями, а затем сопоставить это расположение с исходной конфигурацией для сборки. Это также упростит использование задач MSBuild как для настольных, так и для серверных сборок.

person Jim Lamb    schedule 12.08.2010
comment
Это может сработать, если у вас есть одна ветка и вы редко создаете новые сборки. Но мы регулярно создаем новые ветки и билды для них, и разработчики часто переключаются между ветками. Если возможно, не могли бы вы вкратце описать, как это сделать, чтобы мы могли протестировать его и решить, работает ли он у нас? - person Daniel; 13.08.2010

Я использую $(Temp)\BuildAgent\$(BuildAgentID) в TFS 2012. Обратите внимание, что в TFS 2010 он немного отличался. Не ожидайте, что это будет стабильно для будущих выпусков.

person Christopher Painter    schedule 24.03.2014