【问题标题】:Nant build file having batch files are not exited with error具有批处理文件的 Nant 构建文件未退出并出现错误
【发布时间】:2014-05-22 17:24:58
【问题描述】:

我在一个 nant 构建文件中有一个小问题。

简介:我们有 2 个构建文件 EX(Web 和 DB),它们是独立的并按顺序调用..

nant -buildfile:web.build

nant - buildfile:db.build

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

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 构建网络

谢谢,

维沙尔

【问题讨论】:

    标签: batch-file msbuild nant


    【解决方案1】:

    在每个批处理文件中添加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 目标之后执行任何其他目标。

    【讨论】:

    • 我已经有了等待命令。如果任何批处理文件失败(msbuild),则在执行 2 个批处理文件之后。构建仍在继续进行而不停止。
    • 我认为设置parallel.bat的方式,它仍然会按顺序运行。请参阅另一篇文章的更新答案,您可以参考以获得正确的 parallel.bat 文件格式。
    • 这个 msbuild 只是 web.bat 文件的一部分吗?如果是这样,正如您所说,它不应该依赖于其他人,对吗?并行运行,将允许您同时执行所有单独的组件,但如果一个失败,它不会影响另一个,因为它“并行运行”。如果一个失败并且您希望一切都停止,那么您需要按顺序运行它们。
    • 对我的parallel.bat文件是完全一样的...但是我在构建文件中调用parallel.bat文件,如果失败(检查错误级别,我该怎么做) .整个构建文件应该退出?
    • 在这种情况下,它可能。你的构建文件是如何设置的。我将为parallel.bat 文件创建一个目标。这样,任何这些 bat 文件的任何失败都会在该目标处停止并退出。你有类似的设置吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    相关资源
    最近更新 更多