我在nant构建文件中遇到了一个小问题。
简介:我们有2个构建文件EX(Web和DB),这些文件是独立的,并且被称为seqentially ..
nant -buildfile:web.build
nant - buildfile:db.build
为了节省时间,我们通过添加一个bat文件并在bat文件中并行构建它,我们称之为web&分贝
< exec program =" parallel.bat" >
parallel.bat:
启动web.bat
启动db.bat
web.bat:
nant -buildfile:web.build
db.bat
nant - buildfile:db.build
它工作正常,但问题是如果web.bat或db.bat中有任何失败...构建继续调用主构建文件中存在的剩余目标,而不退出。
如果出现任何故障,有没有办法停止构建,或者我们是否可以在不使用批处理文件的情况下实现web和db的并行性(nant中是否有任何任务)。我们使用MSBuild构建网站
谢谢,
维沙尔
答案 0 :(得分:0)
在每个批处理文件中添加Wait
命令。这将允许NAnt在继续执行其他命令之前完成相应的批处理文件的执行。
更新:
参考this。
您编辑的NANT代码:
<target name="build" >
<exec file="Parallel.bat" />
<other stuff..>
<call target="others"/>
</target>
我的建议......
<target name="build" >
<echo message="Starting Parallel.bat file" />
<call target="Execute.Parallel.batch" />
<echo message="This means the Parellel target was successful..Moving on..." />
<other stuff..>
<call target="others"/>
</target>
<target name="Execute.Parallel.batch" >
<exec file="Parallel.bat" />
</target>
您的Nant文件应该执行一个控制所有其他目标的主目标。由于NAnt本身按顺序执行每个目标,这意味着如果您的批处理文件失败,它将导致nant也失败,因此不会在Parallel.bat目标之后执行任何其他目标。