【发布时间】:2017-08-11 20:02:39
【问题描述】:
我正在尝试获取在 Powershell 脚本中调用的 wpf 应用程序的退出代码。
我在 WPF 中的主要工作:
[STAThread]
public static int Main(string[] args)
{
if (args != null && args.Length > 0)
{
NB_ERRORS = AutomaticTests.Program.Main(args);
return NB_ERRORS;
//Application.Current.Shutdown(NB_ERRORS);
}
else
{
App app = new App();
app.Run(new MainWindow());
//Application.Current.Shutdown(NB_ERRORS);
return NB_ERRORS;
}
}
在 powershell 中我这样称呼它:
& $PathToExeTests 0 $LogTestsStagging
$nbFailed = $LASTEXITCODE
但它总是包含 0。
我尝试手动设置Environment.ExitCode,使用代码关闭应用程序,像这样覆盖 OnExit:
protected override void OnExit(ExitEventArgs e)
{
e.ApplicationExitCode = AutomaticTests.GUI.Program.NB_ERRORS;
base.OnExit(e);
}
但我在 LastExitCode 中总是有 0。
【问题讨论】:
-
退出码默认为0...msdn.microsoft.com/en-us/library/…
-
这就是为什么我试图设置一个自定义的,以便能够知道我在我的 WPF 应用程序中遇到了多少错误。
-
我不知道在 power shell 中,但也许有类似于命令行的东西。在命令行中,您必须使用“start /wait [Application.exe]”运行应用程序,然后才能使用 %errorlevel% 来获取结果。也许power shell有类似的东西
标签: c# wpf powershell