在命令shell中退出WPF应用程序

本文关键字:WPF 应用程序 退出 命令 shell | 更新日期: 2023-09-27 18:10:05

我有一个WPF应用程序,它接受命令行参数,在某些情况下返回一个退出值而不启动应用程序。我已经替换了这个问题中的入口点替换了WPF入口点。当我在没有参数的情况下运行Visual Studio时,它会按预期启动我的应用程序。当我提供一个参数时,一切看起来都很好,我得到一行告诉我"程序XXX已退出,代码为66"

当我不带参数从CMD命令行运行时,它会按预期启动应用程序。当我提供一个参数并查看%ERRORLEVEL%时,我得到的退出代码是0而不是66。这里发生了什么?

namespace WpfApplication2
{
  public class EntryPoint
  {
    [STAThread]
    public static void Main(string[] args)
    {
            if (args.Count > 0)
            {
                Environment.Exit(66);
            }
            App.Main();
    }
  }
  public partial class App : Application
  {
  }
}

在命令shell中退出WPF应用程序

您的应用程序是有窗口的,并且就命令窗口而言是在后台运行的,因此%errorlevel%仅显示应用程序已启动。当应用程序以后退出时,退出代码将丢失。

如https://stackoverflow.com/a/11476681中所述,如果使用START /WAIT启动应用程序,则命令窗口将等待应用程序退出,并将退出代码存储在%errorlevel%中。