1

我正在通过构建过程模板中的 InvokeProcess活动运行 .bat 文件。

当脚本失败时,构建仍会继续并成功。我们如何使构建在当时失败?

4

3 回答 3

3

本文展示了如何根据控制台应用程序的退出代码失败。

配置构建活动后,从批处理文件中使用exit命令。

用于exit /b 0表示一切正常,或exit /b 1表示出现错误。exit命令结束批处理文件的执行,将 errorlevel/exitcode 设置为 '/b' 参数之后的值。

于 2013-12-13T07:32:15.973 回答
0

您可以使用 context.TrackBuildError 方法来标记构建错误。

于 2014-06-10T06:44:33.420 回答
0

您可以使用 MSBUILD 调用 bat 文件。当 bat 文件失败时,我们可以使用退出代码使构建失败。

MSBuild 文件 wrapper.proj

<Project DefaultTargets="Demo" ToolsVersion="3.5"
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <BatchFile>test.bat</BatchFile>
    <FromMSBuild>FromMSBuild</FromMSBuild>
    <build_configurations></build_configurations>
  </PropertyGroup>

  <Target Name="Demo">

    <Message Text="Executing batch file $(BatchFile)" Importance="high"/>

    <PropertyGroup>
      <_Command>$(BatchFile) $(build_configurations) </_Command>
    </PropertyGroup>
    <Exec Command="$(_Command)">
      <Output PropertyName="CommandExitCode" TaskParameter="ExitCode"/>
    </Exec>

    <Message Text="CommandExitCode: $(CommandExitCode)"/>

  </Target>
</Project>

测试.bat

ECHO OFF

IF (%1)==() goto Start
SET fromMSBuild=1

:Start

ECHO fromMSBuild:%fromMSBuild%


REM ***** Perform your actions here *****

set theExitCode=101
GOTO End



:End
IF %fromMSBuild%==1 exit %theExitCode%


REM **** Not from MSBuild ****

ECHO Exiting with exit code %theExitCode%
exit /b %theExitCode%

感谢@Sayed Ibrahim Hashimi 的帖子

于 2017-12-12T05:06:50.860 回答