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

Get exit from WPF application in command shell

我有一个 WPF 应用程序,它接受命令行参数,在某些情况下 returns 没有启动应用程序的退出值。我已经替换了这个问题 Replacing the WPF entry point 中的入口点。 当我 运行 in Visual Studio 没有参数时,它会按预期启动我的应用程序。当我提供一个参数时,一切看起来都不错,我得到一条线告诉我 "The program XXX has exited with code 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
  {
  }
}

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

如 中所述,如果您使用 START /WAIT 启动应用程序,则命令 window 将等待您的应用程序退出并将退出代码存储在 [=10] =].