2013-04-05 3 views
1

Это касается того, как я могу определить, где агент сборки TFS тянет исходный код до/при выполнении сборки.Team Foundation Build Service здание в неправильном месте - VS2008 Team System

Мы восстанавливаем наш устаревший и медленный сервер сборки WinXP на гораздо более быстром новом сервере Win7x64 Pro. Все программное обеспечение установлено, и существующие определения сборки успешно запускаются с использованием определения нового агента сборки. Единственными видимыми различиями между старыми и новыми агентами сборки являются имя агента и имя целевого сервера: строятся определенные версии, которые должны быть удалены в один общий ресурс на каждом сервере (\\ servername \ builds), и каждый агент сборки определяет местоположение сборки как $ (Temp) \ $ (BuildDefinitionPath). Мы позаботились о том, чтобы воссоздать точно такую ​​же структуру папок местоположения на новом компьютере, что и на старом. Обе службы сборки работают под одной учетной записью (\ DevBuildServer), хотя, как правило, сборки запускаются без входа в Windows.

Как бы там ни было: с помощью того же определения сборки старый агент сборки корректно получает исходный код в желаемое целевое местоположение (d: \ temp на старом сервере), но новый агент сборки получает все это неправильный диск и путь на новом сервере.

Из журналов:

Старый сборки агент: Get TeamFoundationServerUrl = "HTTP: // devserver2: 8080 /" BuildUri = "vstfs: /// Build/Build/3437" Force = True перезапись = False PopulateOutput = False Preview = False Рекурсивный = True Version = "C6165" Workspace = "DEVBUILDSERVER_25" Получение d: \ Temp \ Matrix5Branches \ Matrix5313 \ Sources .... и т.д.

вбизи агент: Get TeamFoundationServerUrl = "HTTP : // devserver2: 8080/"BuildUri =" vstfs: /// Build/Build/3459 "Force = True Overwrite = False PopulateOutput = False Preview = False Рекурсивный = True Version =" C6176 "Workspace =" DEVBUILDSERVER2_30 " Получение C: \ Users \ DEVBUILDSERVER \ AppData \ Local \ Temp \ Matrix5Branches .... и т. Д.

Проблема в том, что на новом сервере целевой путь слишком длинный, поэтому сборка завершается с ошибкой. Также нам нужно иметь сборки самостоятельно на отдельном диске, чтобы они не были скопированы. Поэтому на новом сервере сборки мне нужно установить целевой путь для исходного кода: d: \ temp. Мой вопрос: как/где задано местоположение/путь для целевой папки сборки (т. Е. Где выполняется сборка)? Я попытался создать новое определение агента сборки и новую сборку с нуля, но я не могу найти нигде, что это определено, но, очевидно, это где-то, потому что тот, кто построил старый сервер сборки, справился с этим.

ТИА - если я получаю это фиксированным сегодня я с нетерпением ждет расслабленных выходных ....

+0

Если вы используете те же файлы TFSBuild.proj, что и на старой машине, у которых есть несколько имен машин/путей и т. д., закодированные в них вверху. Вы можете взглянуть туда, если вы еще этого не сделали. –

+0

Единственные пути, определенные в файле TFSBuild.proj, прокомментированы как там для обратной совместимости с V1 (мы позже, чем это). Синхронизация их не решает проблему. – haughtonomous

ответ

3

Проблемы заключается в использовании $ (Temp) в вашем Working Directory на строительство недвижимости агента. Это использует переменную окружения TEMP, которая по умолчанию %SystemDrive%\Users{username}\AppData\Local\Temp на ОС Windows 7

Есть два варианта:

  1. Изменение ТЕмп переменной среды
  2. Изменение рабочего каталога установки на строительных агентов
+0

Спасибо.Я попробовал (1), изменив переменную env для учетной записи службы (DevBuildServer) и альтернативно (2) вместо этого в определении агента сборки, но в обоих случаях он теперь терпит неудачу с ошибкой, не найденной в пути: TF215085: ошибка произошел при подключении к агенту ...: Не удалось найти часть пути «C: \ Windows \ system32 \ d; \ temp \ tmp9ameu.tmp'Thanks. Я попробовал (1), изменив переменную env для учетной записи службы (DevBuildServer) и альтернативно (2) вместо этого в определении агента сборки, но в обоих случаях она теперь терпит неудачу с ошибкой, найденной в пути: – haughtonomous

+0

Я должен добавить что переменная TEMP env на сервере сборки не содержит ';' – haughtonomous

+0

Перезапущенная Visual Studio на машине, запускающей сборки, и которая устраняет проблему с файловым пути. – haughtonomous