巡航控制.net:xcopy无法将文件复制到远程服务器

时间:2011-06-30 21:01:31

标签: cruisecontrol.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>

任何建议?

3 个答案:

答案 0 :(得分:1)

谢谢你的回答。批量放置xcopy也没有用,问题还有别处。这是问题:

Cruise Control .net服务正在运行的帐户出现问题。它作为本地服务运行。因此无法看到网络路径。我将CCNet服务更改为在具有在远程计算机上读/写权限的域帐户上运行。这解决了我的问题。

感谢。

答案 1 :(得分:0)

使用xcopy source destOnRemoteMachine命令创建批处理文件,并使用巡航控制中的<exec>命令执行该bat文件.net

答案 2 :(得分:0)

就我而言,在使用 NET USE 将驱动器号持久映射到另一个域上的网络共享后,我以用户帐户身份运行 CC。尽管它在桌面会话中工作,但 CC 仍然无法作为构建的一部分获得共享。执行 NET USE 作为构建的一部分(没有驱动器映射)允许复制成功。

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