在NAnt脚本中调用时,MSBuild会在第一个错误时停止吗?

时间:2009-09-25 08:00:59

标签: msbuild nant

我正在尝试在NAnt中构建VS 2008解决方案,但似乎msbuild在第一次编译错误发生后停止了构建过程。

在MSBuild中有一个“ContinueOnError = true”或“StopOnFirstFailure = false”属性,但是如何在NAnt中指定它? failonerror =“false”无法解决问题:

2 个答案:

答案 0 :(得分:0)

我需要承认这只是第一次猜测,但您是否尝试将ContinueOnError=true作为属性传递给MSBuild?

假设您使用NAntContrib msbuild任务:

<msbuild project="${projectfile.path}">
  <property
    name="ContinueOnError"
    value="true" />
</msbuild>

exec任务:

<exec program="${msbuild.exe.path}">
  <arg value="&quot;${projectfile.path}&quot;" />
  <arg value="/p:ContinueOnError=true" />
</exec>

如果那么简单,那不是很完美吗?

答案 1 :(得分:0)

我现在已经与Nant和CC.Net进行配置管理了一段时间。我的经验我不建议使用Nant MSBuild任务,而最简单的方法是创建和任务,创建任务执行的.bat文件。有几个原因建议使用命令行Visual Studio,因为即使您使用contrib,也不能使用Nant轻松构建一个MSI包。此外,它应该消除你的Nant继续错误请求,Devenv应该自动继续构建,即使一个项目失败。此外,如果您使用此方法,您将不必担心更改nant和nant contrib以处理3.5。如果您使用Cruise控件,您仍会在XML文件中看到您的构建输出。

--------- 2.0 --------

“C:\ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ devenv”C:\ YourProject \ YourSoultion.sln / Rebuild release

3.5 ---------- --------

“C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ devenv”C:\ YourProject \ YourSoultion.sln / Rebuild release