这两天在琢磨用NAnt来实现自动构建,目前已经搞清楚了Build文件的编写方法了,针对目前的项目写了一个build文件,现在测试时编译、FxCop静态分析等工作都正常执行,只有cvs-checkout执行不正确,不知道问题出在什么地方。
下面是我试验用cvs-checkout任务的build文件:
<?
xml version="1.0"
?>
< project name ="RailwayStation" default ="go" basedir ="D:\Railway" >
< target name ="go" depends ="cvscheckout" />
< target name ="cvscheckout" >
< cvs-checkout cvsroot =":pserver:scmuser@192.168.0.1:/DotNet" module ="RailWayStation" destination ="D:\" password ="scmuser" failonerror ="false" verbose ="true" usesharpcvslib ="true" />
</ target >
</ project >
< project name ="RailwayStation" default ="go" basedir ="D:\Railway" >
< target name ="go" depends ="cvscheckout" />
< target name ="cvscheckout" >
< cvs-checkout cvsroot =":pserver:scmuser@192.168.0.1:/DotNet" module ="RailWayStation" destination ="D:\" password ="scmuser" failonerror ="false" verbose ="true" usesharpcvslib ="true" />
</ target >
</ project >
这个实验性的Build文件的目的就是把cvs repository :pserver:scmuser@192.168.0.1:/DotNet 下的RailWayStation模块检出到D:\下。
以上这个build文件在不同情况下执行的错误现象如下:
- 使用NAnt 0.84 Stable Release,cvs-checkout 任务的usesharpcvslib属性设为 false,在执行时只显示一句“Connection established”,没有检出操作,目标目录中的文件没有变化;
- 使用NAnt 0.84 Stable Release,cvs-checkout 任务的usesharpcvslib属性设为 true,在执行时只显示一句“Connection established”,有时会报sharpcvs内部错误,没有检出操作,目标目录中的文件没有变化;
- 使用NAnt 0.85 04-11-18的 Nightly build,cvs-checkout 任务的usesharpcvslib属性设为 false,在执行时提示 cvs-checkot任务的 password 属性已经被废弃,建议改用 cvs-pass 属性,但是改为 cvs-pass 属性后,执行时提示 “Unexpected attribute "cvs-pass" on element <cvs-checkout>.”;继续使用 password 属性则在执行时无法提交指定的cvs密码,而是使用空密码,造成受权失败,真是莫名奇妙!
- 使用NAnt 0.85 04-11-18的 Nightly build,cvs-checkout 任务的usesharpcvslib属性设为 true,在执行时显示如下的信息,然后就没有任何后续的检出操作了。
cvscheckout:
[cvs - checkout] D:\My Documents\My Sources\DotNet\RailWayStation\CVSCheckout.buil
d( 5 , 10 ): Attribute ' password ' for < cvs - checkout /> is deprecated. Use < cvs -
pass > task instead.
[cvs - checkout] Working directory: D:\
[cvs - checkout] Executable: D:\Applications\DevTools\DotNet\NAnt 0.85 \bin\scvs.ex
e
[cvs - checkout] Arguments: - d:pserver:scmuser@ 192.168 . 0.1 : / DotNet - verbose check
out RailWayStation
[cvs - checkout] Starting ' D:\Applications\DevTools\DotNet\NAnt 0.85\bin\scvs.exe
( - d:pserver:scmuser@ 192.168 . 0.1 : / DotNet - verbose checkout RailWayStation) ' in '
D:\ '
[cvs - checkout] Logging in to :pserver:scmuser@ 192.168 . 0.1 : / DotNet
[cvs - checkout] D:\My Documents\My Sources\DotNet\RailWayStation\CVSCheckout.buil
d( 5 , 10 ): Attribute ' password ' for < cvs - checkout /> is deprecated. Use < cvs -
pass > task instead.
[cvs - checkout] Working directory: D:\
[cvs - checkout] Executable: D:\Applications\DevTools\DotNet\NAnt 0.85 \bin\scvs.ex
e
[cvs - checkout] Arguments: - d:pserver:scmuser@ 192.168 . 0.1 : / DotNet - verbose check
out RailWayStation
[cvs - checkout] Starting ' D:\Applications\DevTools\DotNet\NAnt 0.85\bin\scvs.exe
( - d:pserver:scmuser@ 192.168 . 0.1 : / DotNet - verbose checkout RailWayStation) ' in '
D:\ '
[cvs - checkout] Logging in to :pserver:scmuser@ 192.168 . 0.1 : / DotNet
在Google里面好像没有找到我遇到的故障,今天一天都在琢磨这个故障,有点快发疯的感觉了。