我正在尝试使用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>
任何建议?
答案 0 :(得分:1)
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>