Согласно документации, есть набор предопределенных переменных, доступных для задач, которые выполняются в среде для управления выпусками. Как мне получить доступ к этим переменным из сценария Powershell?
Например: переменная System.TeamProject
определена и должна возвращать текущий TFS TeamProject. Однако когда я пишу:
Write-Host "environment var: $env:System.TeamProjectId"
Вывод в файле журнала:
2016-06-07T09:26:49.5537161Z environment var: release.TeamProject
Однако в файле журнала Initialize
отображается следующее:
4 2016-06-07T09:26:40.4121001Z Environment variables available are below. Note that these environment variables can be referred to in the task (in the ReleaseDefinition) by replacing "_" with "." e.g. AGENT_NAME environment variable can be referenced using Agent.Name in the ReleaseDefinition:
...
34 2016-06-07T09:26:40.4277002Z [SYSTEM_COLLECTIONID] --> [2043d9ba-7ec9-43f0-8e6c-96a8b28f55d8]
35 2016-06-07T09:26:40.4277002Z [SYSTEM_TEAMPROJECTID] --> [9718773d-2aee-4625-91c6-80de16301479]
36 2016-06-07T09:26:40.4277002Z [SYSTEM_TEAMPROJECT] --> [MyProject]
37 2016-06-07T09:26:40.4277002Z [SYSTEM_CULTURE] --> [en-US]
Значит, переменная есть. Я попробовал $(System.TeamProject)
, как предлагалось где-то еще, но это не помогло с The term ... is not recognized
-ошибкой.
Кроме того, переменные, которые я сконфигурировал сам в определении выпуска, например priority
, я я могу получить доступ с помощью $env:priority
.
В качестве обходного пути я могу создать свои собственные параметры в сценарии и передать их в поле «Аргументы» в определении задачи, но это не дает цели.