2012-02-16 2 views
3

У меня есть сценарий, который распаковывает пакет MVC, уменьшает все файлы CSS и js и разворачивает его. Он отлично работает на моей машине и на сервере CI в качестве администратора или учетной записи TeamCity. Когда TeamCity вытаскивает его и запускает, сценарий дает весь ожидаемый результат, не сообщает об ошибке, но он никогда не распакует файл.Почему я не могу разархивировать PowerShell в агенте TeamCity?

write-host "creating shell object" 
$shell_app=new-object -com shell.application 
write-host "creating zip file" 
$zip_file = $shell_app.namespace("C:\temp\PokerLeagueWebSite.zip") 
write-host "setting folder to unzip to" 
$destination = $shell_app.namespace("C:\temp\zy98") 
write-host "about to copy files from zip" 
$destination.Copyhere($zip_file.items(), 0x4) 
write-host "finished" 

Вот выход из TeamCity:

[23:01:03]: Step 5/5: test ps1 file (Powershell) 
[23:01:03]: [Step 5/5] Starting: C:\Windows\system32\cmd.exe /c 
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -File 
C:\TeamCity\buildAgent\work\71e78d4c543e0594\Tools\test.ps1 && exit /b %ERRORLEVEL% 
[23:01:03]: [Step 5/5] in directory: C:\TeamCity\buildAgent\work\71e78d4c543e0594 
[23:01:03]: [Step 5/5] creating shell object 
[23:01:03]: [Step 5/5] creating zip file 
[23:01:03]: [Step 5/5] setting folder to unzip to 
[23:01:03]: [Step 5/5] about to copy files from zip 
[23:01:03]: [Step 5/5] finished 
[23:01:03]: [Step 5/5] Process exited with code 0 
[23:01:03]: Publishing internal artifacts 
[23:01:03]: [Publishing internal artifacts] Sending build.finish.properties.gz file 
[23:01:03]: Build finished 

Если я запускаю точную команду на сервере на счет TeamCity он работает правильно:

C:\Windows\system32\cmd.exe /c C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -File C:\TeamCity\buildAgent\work\71e78d4c543e0594\Tools\test.ps1 && exit /b %ERRORLEVEL% 

Я могу только подумать это то, что делает TeamCity или что-то связанное с тем, что он работает как служба, но я в тупике и не могу понять этого.

+0

Поскольку у меня все еще есть проблема, я открыл [проблему] (http://youtrack.jetbrains.com/issue/TW-24331) на JetTrack от Jetbrains –

ответ

1

Вчера я столкнулся с этим вопросом. Это имеет какое-то отношение к разрешениям, даже если ошибка не была зарегистрирована. У меня есть машина Windows Server для моего агента сборки, и он настроен для работы в качестве службы Windows. Я изменил параметр «Вход», чтобы служба была пользователем, а не учетной записью SYSTEM, и все казалось прекрасным, пока у меня не возникла такая же проблема. Я никогда не нашел способ исправить это при запуске агента как службы, поэтому я изменил его, чтобы запустить агент из файла /bin/agent.bat. Я мог бы добиться такой же настройки, выполнив ее как запланированную задачу и запуская при запуске. Но, в конечном счете, переход на то, чтобы не работать как служба Windows, устранил проблему для меня.

3

Я использовал ответ от пользователя user1545905, но мне пришлось вручную перезапустить агент агента TeamCity после перезагрузки сервера. Вы можете предоставить пользователю службы сервиса агента TeamCity полный доступ к каталогу.

+0

Другой вариант - просто использовать 7zip. Вот пример: [your7zipfolder] \ 7z.exe e -tzip "[yourzipfile]" -o [yourtargetfolder] -y –

+0

Этот ответ не работает для меня. Пользователь уже является администратором и имеет полный доступ к папке. Считаете ли вы важным, что скрипт _my_ извлекается в переопределенный каталог env.TEMP? ('C: \ buildagent \ Temp \ buildtmp') –

Смежные вопросы