Batch file 包含批处理文件的Nant生成文件未退出,出现错误

Batch file 包含批处理文件的Nant生成文件未退出,出现错误,batch-file,msbuild,nant,Batch File,Msbuild,Nant,我在nant构建文件中遇到了一个小问题 简介:我们有两个独立的构建文件EX(web和DB),分别称为Sequentially nant-buildfile:web.build nant-buildfile:db.build 为了节省时间,我们通过添加一个bat文件并在bat文件中同时调用web和db来并行构建它 parallel.bat: 启动web.bat 启动db.bat web.bat: nant-buildfile:web.build 蝙蝠 nant-buildfile:db.buil

我在nant构建文件中遇到了一个小问题

简介:我们有两个独立的构建文件EX(web和DB),分别称为Sequentially

nant-buildfile:web.build

nant-buildfile:db.build

为了节省时间,我们通过添加一个bat文件并在bat文件中同时调用web和db来并行构建它

parallel.bat:

启动web.bat

启动db.bat

web.bat:

nant-buildfile:web.build

蝙蝠

nant-buildfile:db.build

它工作正常,但问题是web.bat或db.bat中是否存在任何故障。。。生成将继续调用主生成文件中存在的其余目标,而不退出

如果出现任何故障,是否有任何方法停止构建,或者我们是否可以在不使用批处理文件的情况下实现web和db的并行性(nant中是否有任何任务)。我们使用MSBuild来构建web

谢谢


Vishal

在每个批处理文件中添加一个
Wait
命令。这将允许NAnt在继续执行其他命令之前完成相应批处理文件的执行

更新:

参考

您编辑的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目标之后不会执行任何其他目标。

我已经有了等待命令。执行两个批处理文件后,如果任何批处理文件失败(msbuild)。构建仍在继续进行,但没有停止。我认为设置parallel.bat的方法是,它仍将按顺序运行。请参阅更新的答案以获取另一篇文章,您可以引用该文章以获得parallel.bat文件的正确格式。此msbuild是否仅是web.bat文件的一部分?如果是这样的话,就像你说的,它不应该依赖于其他人,对吗?并行运行将允许您同时执行所有单个组件,但如果其中一个组件出现故障,则不会影响另一个组件,因为它“并行运行”。如果一个失败了,你想让一切停止,那么你需要按顺序运行它们。。。但是我在一个构建文件中调用parallel.bat文件,如果失败(检查错误级别,我怎么做)。整个构建文件应该退出?在这种情况下,它可能会退出。如何设置生成文件。我会为parallel.bat文件创建一个目标。这样,任何bat文件的故障都将在该目标处停止并退出。。你有这样的安排吗?