【问题标题】:Get exit from WPF application in command shell在命令 shell 中退出 WPF 应用程序
【发布时间】:2015-11-21 11:39:32
【问题描述】:

我有一个 WPF 应用程序,它采用命令行参数,在某些情况下返回退出值而不启动应用程序。我已经替换了这个问题Replacing the WPF entry point中的入口点。 当我在没有参数的情况下在 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
  {
  }
}

【问题讨论】:

  • 我创建了一个快速的 c# 控制台应用程序来使用 Process.Start 调用应用程序并报告退出代码,当我使用参数运行我的应用程序时,它正确地报告了退出代码 66。所以纯粹是命令行上的错误。

标签: c# wpf exit-code entry-point


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多