CruiseControl.Net не играет хорошо с PowerShell - PullRequest
3 голосов
/ 04 августа 2010

Вот моя задача PowerScript

<powershell>
    <script>RunScout3G.ps1</script>
    <executable>C:\WINDOWS\system32\WindowsPowerShell\v1.0\PowerShell.exe</executable>
    <scriptsDirectory>C:\Program Files\CruiseControl.NET\Our_PowerShell</scriptsDirectory>
    <buildArgs></buildArgs>
    <successExitCodes>0</successExitCodes>
    <buildTimeoutSeconds>900</buildTimeoutSeconds>
    <description>Example of how to run a PowerShell script.</description>
  </powershell>

Ошибка в этом ...

<buildresults>
<message level="Error">The term 'C:\Program' is not recognized as the name of a cmdlet, function, scri </message>
<message level="Error">pt file, or operable program. Check the spelling of the name, or if a path was </message>
<message level="Error">included, verify that the path is correct and try again.</message>
<message level="Error">At line:1 char:11 </message>
<message level="Error">+ C:\Program <<<<  Files\CruiseControl.NET\JCDC_PowerShell\RunScout3G.ps1 </message>
<message level="Error">    + CategoryInfo          : ObjectNotFound: (C:\Program:String) [], CommandN </message>
<message level="Error">   otFoundException </message>
<message level="Error">    + FullyQualifiedErrorId : CommandNotFoundException </message>
<message level="Error"> </message>

Проблема со скриптамиDirectory. В названии диска есть пробел "Program Files".
Если я попытаюсь поставить «вокруг» или «вокруг него», круизконтроль скажет «недействительный диск» Любая помощь будет потрясающей.

Версия PowerShell - V2

Версия CruiseControl.Net - 1.5.6755.1

Ответы [ 2 ]

4 голосов
/ 04 августа 2010

Вы также можете попробовать использовать 8-символьные имена каталогов. Если вы запустите dir / x , вы увидите сокращенные имена. В них никогда не будет пробелов, так что это хороший способ избежать проблем с побегами. В вашем случае это должно выглядеть как c: \ PROGRA ~ 1 \ CRUISE ~ 1 ...

0 голосов
/ 04 августа 2010

ОК, если он не принимает кавычки (вы пробовали «в синтаксисе XML?»), В зависимости от вашей системы, возможно, вы можете сделать ссылку на правильный диск, чтобы вы могли использовать новый путь к Исполняемый файл powershell:

mklink /D c:\powershell "C:\WINDOWS\system32\WindowsPowerShell\v1.0"

, а затем

<script>RunScout3G.ps1</script>
<executable>C:\powershell\PowerShell.exe</executable>

Кстати, если вы используете Powershell V2, это правильный путь?

...