Как упоминалось в постаноте , проблема заключалась в размахе. Переменные агента не видны сценарию, поскольку он выполняется в области закрытия. Это означает, что вы должны явно отправить ему переменные. Как я это сделал, я определил param
в начале сценария PowerShell, как вы обычно хотели бы это:
param ([string] $MSBuildPath)
И затем, в определении шага, какая область может получить доступ к переменных, вы отправляете его в качестве аргумента, например:
powerShell {
formatStderrAsError = true
scriptMode = file {
path = "path\to\file.ps1"
}
param("jetbrains_powershell_scriptArguments", """-MSBuildPath "%MSBuildTools15.0_x86_Path%"""")
}
Я пытался использовать args[0]
без именованных параметров, но вы действительно не знаете положение параметра без попытки и ошибки, потому что TeamCity добавляет кучу других аргументов.