CCNet - задача предварительной сборки cmd.exe? - PullRequest
0 голосов
/ 04 ноября 2010

Я использую задачу предварительной сборки командной строки в файле ccnet.config, чтобы удалить содержимое рабочего каталога thw перед тем, как выполнить чистую сборку.

      <prebuild>
          <exec>
            <executable>%SYSTEM32%\cmd.exe</executable>
            <buildArgs>/c "if exist "C:\CruiseControl\Working" rd /s /q "C:\CruiseControl\Working""</buildArgs>
          </exec>
      </prebuild>    

Проблема в том, что я получаю ошибку:

System.IO.IOException: невозможно выполнить файл [C: \ CruiseControl \ Working \ cmd.exe].

похоже, что ищет cmd.exe в рабочей папке. Поэтому я попытался добавить путь к cmd.exe следующим образом:

     <prebuild>
          <exec>
            <executable>%SYSTEM32%\cmd.exe</executable>
            <buildArgs>/c "if exist "C:\CruiseControl\Working" rd /s /q "C:\CruiseControl\Working""</buildArgs>
          </exec>
      </prebuild>

Любая помощь будет отличной?

Ответы [ 3 ]

2 голосов
/ 04 ноября 2010

Я нашел ответ на свой оригинальный вопрос:

Мне просто нужно было установить trueCopy в блоке sourcecontrol.

      <sourcecontrol type="svn">                                            
        <trunkUrl>TRUNK-URL</trunkUrl>                
        <executable>SVN.EXE</executable>           
        <username>TEST</username>                                         
        <password>TEST</password> 
        <cleanCopy>true</cleanCopy>         
      </sourcecontrol>    
1 голос
/ 05 января 2011

У меня такая же проблема с cmd.exe в блоке. У меня cleanCopy установлено значение true в блоке управления несколькими источниками с Source Gear Vault. Ничто здесь или где-либо еще не решило эту проблему, кроме помещения моей однострочной команды в файл .cmd, но я бы не стал создавать .cmd для каждой маленькой строки, которую мне нужно запустить из командной строки.

1 голос
/ 04 ноября 2010

Путь, где находится cmd.exe, находится в переменной среды% PATH%. Вам не нужно явно устанавливать его (вы можете проверить это, набрав cmd в приглашении выполнить):

<prebuild>
  <exec>
    <executable>cmd.exe</executable>
    <buildArgs>/c "if exist "C:\CruiseControl\Working" rd /s /q "C:\CruiseControl\Working""</buildArgs>
  </exec>
</prebuild>

Что касается проблемы использования каталога. Я думаю, что вы хотите удалить подкаталог C: \ CruiseControl \ Working вместо всего Working. Также может быть, что SVN или другой процесс работает над этим. Что произойдет, если вы запустите

if exist "C:\CruiseControl\Working" rd /s /q "C:\CruiseControl\Working"

прямо в cmd?

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