TFS Build и Powershell: как получить доступ к предопределенным переменным сборки - PullRequest
0 голосов
/ 01 марта 2020

У меня проблемы с доступом к переменным сборки из скрипта powershell, например, я хочу получить доступ к Agent.BuildDirectory. Я попытался:

$Build.SourcesDirectory
$(Build.SourcesDirectory)

никто не работает.

Я знаю, что могу использовать $ Env: TF_BUILD_SOURCESDIRECTORY, но не все переменные доступны таким образом.

Есть ли у вас какие-либо предложения?

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Итак, это обновление TFS 2017. Вы должны быть в состоянии делать то, что пытаетесь делать. Где вы пытаетесь использовать переменные, как параметр в сборке или фактически внутри скрипта PowerShell? Эти переменные могут быть использованы в качестве параметров и будут заменены агентом во время выполнения и переданы в сценарии, но если вы пытаетесь получить к ним доступ внутри сценария, такого как $ (...), он не будет работать. Вам нужно использовать переменную $ env: VARIABLE. Все переменные в разделе переменных преобразуются в переменные среды с их именами во время выполнения. Так, например, если вы используете встроенный PowerShell, как показано ниже, вы можете использовать $ (..) inline script

или если вы хотите передать параметры скрипта PowerShell, которые вы можете также.

passing parameters to script

Но изнутри скрипта вы не можете.

enter image description here

1 голос
/ 02 марта 2020

Вы должны использовать $(Agent.BuildDirectory), а не $(Agent.SourcesDirectory). Проверьте переменные агента по ссылке ниже:

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml#agent -варианты

Обновление: Добавление снимка экрана:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...