TeamCity Powershell Runner - Невозможно запустить исходный код - PullRequest
2 голосов
/ 10 февраля 2012

Я пытаюсь запустить некоторые сценарии PS с помощью Powershell Runner в TC и определяю свой собственный сценарий как «Исходный код» вместо файла сценария.Мой сценарий так же прост:

"Hello World!"

Я работаю на Windows Server 2008 R2, и я попытался с:

  1. Запустите его как x86 + x64
  2. Использование «Выполнить .ps1 с аргументом -File» + «Поместить скрипт в стандартную оболочку powershell с аргументами« -Command - ».
  3. Я установил политику безопасности на Unrestricted, пытаясь заставить ее работать, ноне повезло.

Если я вместо этого использую бегун командной строки и, например, напишу:

powershell -Command Get-ExecutionPolicy

Работает нормально.

Ошибки, которые я получаю (зависит отна каком из 2 режимов выполнения я использую):

Starting: C:\...\cmd.exe /c C:\...\powershell.exe -NonInteractive -Command 
- "<C:\...\powershell3889347351955805274.ps1" && exit /b %ERRORLEVEL%
in directory: C:\...\e18dda4054c166c7
'-' was specified with the -Command parameter; no other arguments to -Command are permitted.

ИЛИ

Starting: C:\...\cmd.exe /c C:\...\powershell.exe -NonInteractive -File     
"C:\...\powershell8264270201473986040.ps1" && exit /b %ERRORLEVEL%
in directory: C:\...\e18dda4054c166c7
The term 'f' is not recognized as the name of a cmdlet, function, script file, 

Мне кажется, что TC помещает что-то в сам скрипт, но я не уверен.Я застрял, и я не могу понять, какой момент я здесь упускаю: S.

Может кто-нибудь помочь?

1 Ответ

4 голосов
/ 10 февраля 2012

Я не смог воспроизвести это, но заметил что-то довольно странное с командой, которую пытается запустить TeamCity:

-NonInteractive -Command - "<C:\...\powershell3889347351955805274.ps1"

Я не видел, чтобы она добавляла кавычки, поэтому яподумал, что, возможно, TeamCity пытается процитировать путь с пробелом в нем (помог бы, если бы вы не отредактировали свой путь)

Поэтому я переключил моего агента на путь с пробелом в нем, и яполучил ту же команду, и да, ту же ошибку.Таким образом, TeamCity ошибочно указывает путь.Он включает < в кавычки, в то время как он должен был быть <"c:\path with\space"

Я посмотрю, могу ли я сообщить об ошибке (если ее нет)

ПопробуйтеВ качестве обходного пути вы можете переместить вашего агента на путь без пробелов.

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