当错误写入错误流时,如何防止TFS在PowerShell步骤失败?

Gid*_*sey 11 powershell tfs tfsbuild

我在TFS构建中有一个PowerShell步骤,它将错误写入错误流,从而使构建失败.我想要忽略错误的步骤并继续成功.

进程已完成,退出代码为0,并且已将1个错误写入错误流.

我已经尝试Continue on error在TFS中设置选项,但这会导致"构建部分成功"状态,但我想要的是它"成功".

我也尝试添加2>&1 > output.txt到生成错误的行的末尾,但错误仍然写入TFS输出,而不是在文本文件中捕获.

我正在执行的New-TfsChangeset命令是TFS 2015 Power Tools 的cmdlet.

Pat*_*SFT 7

您可以取消选中PowerShell脚本配置中的标准错误失败并编写lastexitcode以传递任务.

在此输入图像描述

标准错误失败

如果这是真的,如果将任何错误写入错误管道,或者将任何数据写入标准错误流,则此任务将失败.否则,任务将仅依赖于$ LASTEXITCODE和退出代码来确定失败.

然后,您可以使用PowerShell或VSTS任务命令输出错误或警告.

Write-Warning “warning”
Write-Error “error”
Write-Host " ##vso[task.logissue type=warning;]this is the warning"
Write-Host " ##vso[task.logissue type=error;sourcepath=consoleapp/main.cs;linenumber=1;columnnumber=1;code=100;]this is an error "
Run Code Online (Sandbox Code Playgroud)

有关VSTS任务命令的更多信息,请参阅:日志命令


小智 6

以下脚本在 VSTS 中对我有用:

Write-Host "Running build script..."
&$CAKE_EXE $cakeArguments 2>&1 | Write-Host
Run Code Online (Sandbox Code Playgroud)

我刚刚添加"2>&1 | Write-Host"到命令中,以便将标准错误流路由到Write-Host 流