Robocopy 将以高于 0 的代码退出,但仍可能不会失败。PSake 将任何高于 0 的内容检测为失败并导致构建失败。这很好,但是为什么仍然失败:
task Deploy {
robocopy $source $dest /NP /S /XO /NFL /NDL /NJH /NJS | Out-Default
if ($lastexitcode -eq 3)
{
Write-Host "Got Here"
$lastexitcode = 0
}
Write-Host "Deploy local complete"
Write-Host $lastexitcode
}
TaskTearDown {
if ($LastExitCode -ne 0) {
write-host "Build failed"
exit 1
}
}
我可以验证是否命中了 Deploy if 语句并且 Write-Host 正确输出 0,但 TaskTearDown 仍将最后一个退出代码检测为 3!我该如何解决?