Синтаксис подвыражения Powershell, используемый TFS / Azure Devops - PullRequest
0 голосов
/ 15 октября 2018

TFS / Azure DevOps позволяет ссылаться на пользовательские переменные и встроенные переменные сборки / выпуска, используя следующий синтаксис :

$(variable_name)

Например, если я хочу получить сборкуимя определения, я бы взял значение из следующего под-выражения:

$(Build.DefinitionName)

Но, насколько я могу судить, приведенный выше синтаксис не является допустимым под-выражением powershell ,

Если бы "Build.DefinitionName" была переменной, она должна выглядеть следующим образом:

$($Build.DefinitionName)

Если бы это была коллекция / хеш-таблица, она использовала бы фигурные скобки:

${Build.DefinitionName}

Если бы это был объект со статическим свойством, это было бы:

${Build::DefinitionName}

Так что, черт возьми, это "Сборка" в приведенном выше примере?Делает ли здесь TFS / VSTS / Azure DevOps какую-то магическую замену или что-то в этом роде?

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Переменные сборки / выпуска доступны для процессов, выполняемых в области сборки / выпуска, в форме переменных среды.

Например, имя определения сборки доступно так же, как и вы.получить доступ к любой другой переменной среды в PowerShell: $env:BUILD_DEFINITIONNAME.Обратите внимание, что точки заменяются символами подчеркивания.

Исключением являются секреты.Все, что определено как секрет, должно быть явно передано в сценарий потребления, так как они не заполняются как переменные среды.

0 голосов
/ 15 октября 2018

Это не элемент языка Powershell, это простой синтаксис заполнителя TFS / VSTS, так же как SQLCMD использует: https://docs.microsoft.com/en-us/sql/relational-databases/scripting/sqlcmd-use-with-scripting-variables?view=sql-server-2017

TFS / VSTS вставляет значения для этих заполнителей перед вызовом ваших задач Powershell.

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