В Team Foundation Server 2015 в определении сборки я использую свои пользовательские переменные, определенные на вкладке «Переменные». Есть ли способ получить к ним доступ на этапе сборки PowerShell, например, к предопределенным переменным, например. "$env:BUILD_DEFINITIONNAME"? Спасибо
Как получить доступ к пользовательской переменной сборки в скрипте в TFS 2015?
Ответы (1)
[отказ от ответственности: я работаю над новой системой сборки]
Я часто советую людям использовать задачу cmdline или сценарий cmd для вывода переменных (набор вызовов в Windows, env в *nix). Есть документы и т. д., но на самом деле это покажет, что именно доступно.
Добавьте задачу командной строки (в утилите) с помощью инструмента = cmd и аргументов = /k set
Переменные на вкладке переменных определений должны быть доступны как переменные среды в верхнем регистре.
So:
my variable
Доступен как переменная окружения
MY VARIABLE
Есть текущая ошибка, она должна соответствовать спецификации MY_VARIABLE. В сценарии агента/оболочки xplat это MY_VARIABLE
Это делает его доступным для сценариев cmd, powershell, shell и т. д.
person
bryanmac
schedule
28.08.2015
Спасибо, bryanmac, я должен понять это. Это очень полезный метод для многих обстоятельств. Переменная среды, которую я искал, — это BUILD_DROPLOCATION, поэтому кажется, что префикс BUILD_ используется для пользовательских переменных сборки.
- person Michal; 28.08.2015
Нет — есть системные переменные и переменные сборки, которые начинаются с system.xxx и build.xxx — они преобразуются в envvar toUpper и space -> _. См. msdn.microsoft.com/Library/vs/alm/Build/scripts. /переменные
- person bryanmac; 29.08.2015
vars на вкладке def vars должны быть просто закрыты и подчеркнуты (хотя ошибка, о которой я упоминал выше)
- person bryanmac; 29.08.2015
Примечание. Похоже, что в переменной с именем «DropLocation» есть что-то особенное/волшебное (и недокументированное). Он превращается в переменную среды BUILD_DROPLOCATION, и вы не можете использовать его как $(DropLocation) в пользовательском интерфейсе. Вы должны использовать его как $(Build.DropLocation). Однако большинство пользовательских переменных не получают «Сборку». к ним застрял префикс (например, переменная ProductName может использоваться как $(ProductName) в пользовательском интерфейсе и как переменная среды PRODUCTNAME). У меня обновление 2 2015 года, но я подозреваю, что @Michal столкнулся с этим особым случаем даже в RTM.
- person Bill Menees; 06.06.2016