круиз-контроль .net: xcopy не работает для копирования файлов на удаленный сервер

Я пытаюсь скопировать папку на удаленный компьютер с помощью xcopy. Эта команда выполняется через задачу круиз-контроля. Я могу успешно запустить xcopy source destOnRemoteMachine, если запускаю его из командной строки. Но если я запускаю его из круиз-контроля .net, он всегда жалуется на ошибку «Неверная спецификация диска».

Я пытался :

> <exec
> executable="c:\Windows\System32\xcopy.exe">
>                 <baseDirectory>$(BASE)\Project</baseDirectory>
>                 <buildArgs>.\*.* RemoteMachine\Project /Y</buildArgs>
>                 <buildTimeoutSeconds>10</buildTimeoutSeconds>
>                 <successExitCodes>-1,0,1</successExitCodes>
>               </exec>

и :

<exec executable="c:\Windows\System32\cmd.exe">
        <baseDirectory>$(BASE)\Project</baseDirectory>
        <buildArgs>/C xcopy $(BASE)\Project\*.* RemoteMachine /y</buildArgs>
        <buildTimeoutSeconds>30</buildTimeoutSeconds>
        <successExitCodes>-1,0,1</successExitCodes>
      </exec>

Какие-либо предложения?


person Tara Singh    schedule 30.06.2011    source источник


Ответы (3)


спасибо за Ваш ответ. Ставить xcopy пакетно тоже не помогло, проблема была в другом. вот проблема:

Это была проблема с учетной записью, на которой работала служба Cruise Control .net. Он работал как локальная служба. Таким образом, не удалось увидеть сетевой путь. Я изменил службу CCNet, чтобы она работала с учетной записью домена, имеющей разрешение на чтение/запись на удаленной машине. Это решило мою проблему.

Спасибо.

person Tara Singh    schedule 04.07.2011

Создайте пакетный файл с помощью команды xcopy source destOnRemoteMachine и запустите этот bat-файл с помощью команды <exec> в круиз-контроле .net.

person Mahesh KP    schedule 01.07.2011

В моем случае я запускал CC в качестве учетной записи пользователя после того, как использовал NET USE для постоянного сопоставления буквы диска с сетевым ресурсом в другом домене. Несмотря на то, что это работало в сеансе рабочего стола, CC по-прежнему не мог получить доступ к общему ресурсу в рамках сборки. Выполнение NET USE как части сборки (без сопоставления дисков) позволило выполнить копирование.

<exec program="net" verbose="true">
  <arg value="use" />
  <arg value="\\server\share" />
  <arg value="password" />
  <arg value="/user:domain\username" />
</exec>
person Daz    schedule 27.05.2021