当msbuild构建失败时,Ant没有看到

时间:2009-11-23 15:49:41

标签: msbuild ant

作为我的Ant集成测试脚本的一部分,我运行一个MSBuild构建(只执行msbuild.exe),它在正面情况下工作正常。但是,Ant无法识别msbuild构建失败的时间。我怎样才能使它发挥作用?

编辑:

我可以通过执行可执行文件msbuild:

<target name="executeMsbuild">
        <exec command="C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe /t:build-for-tests ${csharp.dir}\msbuild.xml"/>
</target>

2 个答案:

答案 0 :(得分:2)

向exec提供failonerror属性。

还为msbuild.exe路径提供属性。

还将命令行参数作为args

传递
<target name="executeMsbuild">
  <property name="msbuild-prog"
    location="C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe"
  />

  <exec
    executable="${msbuild-prog}"
    failonerror="true"
  >
    <arg value="/t:build-for-tests"/>
    <arg file="${csharp.dir}/msbuild.xml"/>
  </exec>

</target>

答案 1 :(得分:0)

使用failonerror = true会立即为您提供“BUILD FAILED” 在大多数情况下,错误并且是足够的。

对于更复杂的错误处理,请使用= 来自Antelope taskuite(1)的try任务,它会给你一个 try / catch / finally(2),如java中所示。 Antelope还有一个限制任务(3),这是一个任务混合器,其他任务 被放入并提供超时。 限制可以与尝试或单独使用相结合

如果有人提到AntContrib,那就是另一个ant任务套件了 与Antelope相同的任务,但似乎是AntContrib的开发 已停止(4)

(1)Antelope Tasksuite (2)Manpage try task (3)Manpage limit task (4)Antelope <> AntContrib