具有批处理文件的Nant构建文件不会退出并显示错误

时间:2014-05-22 17:24:58

标签: batch-file msbuild nant

我在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构建网站

谢谢,

维沙尔

1 个答案:

答案 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目标之后执行任何其他目标。