【发布时间】:2018-09-09 19:41:32
【问题描述】:
我有一个用 C# 编码的控制台应用程序,用于我的 TFS 发布过程,如果此应用程序遇到错误,它将显示错误然后返回非零错误代码,如下所示:
try
{
//Does stuff...
return 0; //where 0 = success
}
catch (Exception ex)
{
Console.WriteLine("Error in Main: " + ex.Message + "\n" + ex.StackTrace);
for (int i = 0; i < args.Length; i++)
{
Console.WriteLine("Value in args[" + i + "]: " + (i == 3 ? "**********" : args[i]));
}
//Return error state
return 1;
}
它由 TFS 中的 PowerShell 脚本调用,如下所示:
# (Does some parsing stuff...)
echo $abc
Start-Process -FilePath $abc-ArgumentList $arguments -NoNewWindow -PassThru -Wait
现在我的问题是有时控制台应用程序失败,它会打印错误并正确退出,但由于某种原因 TFS 没有检测到这一点并认为步骤“完成”:
我不确定我缺少什么,我的 PowerShell 脚本/应用程序需要做什么来指示 TFS 发生了故障?我认为 PowerShell 中的“PassThrough”标签应该向上传递错误代码,这不正确吗?
【问题讨论】:
标签: c# powershell tfs console