我正在尝试设置并获取应用程序退出代码。
我正在尝试做以下事情:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
if ( e.Args.Length != 0)
{
}
else
{
new MainWindow().ShowDialog();
}
Environment.ExitCode = 110;
this.Shutdown();
}
然后我在cmd
尝试通过echo %ERRORLEVEL%
但我总是得到结果0
,知道问题是什么?
答案 0 :(得分:10)
对于WPF,请尝试
Application.Current.Shutdown(110);
请注意,应用程序需要作为控制台应用程序运行。 This answer是我所知道的最简单的方式;接受的答案看起来更难。
一个简单的测试,告诉您是否在控制台模式下运行:从命令行调用您的应用程序(确保您的代码不会立即关闭)。应显示主窗口。如果您可以在控制台中键入另一个命令,则您的应用程序不会在其上下文中运行。应该锁定命令提示符,等待您关闭窗口。
答案 1 :(得分:2)
覆盖OnExit方法,在ExitEventArgs中可以设置该值。
protected override void OnExit(ExitEventArgs e)
{
e.ApplicationExitCode = your_value;
}
答案 2 :(得分:2)
它适用于任何一种方法(Environment.ExitCode=110
或Environment.Exit(110)
)。我希望您从控制台调用该程序,而不是从Visual Studio调用,然后检查ExitCode ...
答案 3 :(得分:1)
您可以使用Main
方法执行此操作。只需将其返回值类型更改为int
而不是void
,然后返回exit-code
static int Main(string[] args) {
// something to do
Console.ReadKey();
return 110;
}
<强>更新强>
要在WPF应用程序中创建自定义Main
,您应该按照以下步骤操作:
首先:在解决方案资源管理器中右键单击项目以卸载项目 并单击卸载项目
修改.csproj
文件,将<ApplicationDefinition Include="App.xaml">
更改为此<Page Include="App.xaml">
现在,您可以在项目中创建自己的Main
方法:
示例Main
方法和App
类:
public partial class App : Application {
[STAThread]
public static int Main() {
App app = new App();
app.InitializeComponent();
var i = app.Run();
return i;
}
public App() : base() { }
protected override void OnExit(ExitEventArgs e) {
e.ApplicationExitCode = 110;
base.OnExit(e);
}
}
答案 4 :(得分:0)
这样做:
Environment.Exit(110);
这将使用退出代码110
终止当前应用程序。
答案 5 :(得分:0)
您可以通过以下方式执行此操作...
Application.Current.Shutdown(110); Environment.Exit(10); this.Close();
Shoutdown()返回一个代码。和Exit()也返回退出代码,但Close()只关闭应用程序。