c# - 应用程序退出代码始终返回 0

标签 c# windows vb6 exit

我们有一个旧版 VB6 应用程序,它运行单独的 C# EXE。 VB6 应用程序依赖 C# 应用程序来执行特定任务。当任务成功完成时,它将返回退出代码 0,如果失败则返回 1。

这在我们的开发机器上运行良好(是的,我们在不止一台机器上尝试过)。但是,当我们在客户端计算机上尝试它时,无论任务结果如何,它总是返回 0 退出代码。

真正奇怪的是,在这种情况第一次发生之前,这个场景已经完美运行了大约 8 个月。

我们甚至尝试制作一个简单的 C#“运行程序应用程序”,它仅调用 exe 并捕获其退出代码。同样,它在我们的开发计算机上运行良好,但在客户端计算机上始终返回 0。所以,我们断定问题不在VB6程序中。

这是调用 .exe 程序的 C#“运行程序应用程序”代码片段:

System.Diagnostics.Process installProcess = new System.Diagnostics.Process();
installProcess.StartInfo.FileName = this.textBox1.Text;
installProcess.StartInfo.Arguments = this.textBox2.Text;
installProcess.Start();
installProcess.WaitForExit();
MessageBox.Show("Exit code : " + installProcess.ExitCode.ToString());

这是使用自定义退出代码退出程序的 C# 代码片段:

Environment.Exit(1);

好吧,我们怀疑客户端计算机操作系统上的某些配置导致客户端计算机上出现这种奇怪的行为。

最佳答案

基于 Michael Gosselin 对 this question 的评论,将项目编译为“控制台应用程序”而不是“Windows 应用程序”至关重要。

关于c# - 应用程序退出代码始终返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49624299/

相关文章:

C# 为什么部分方法可以使用 ref,但不能使用 out?

c# - autogeneratecolumns=true 时如何实现 wrap 属性?

python - Windows 驱动程序可以用 Python 编写吗?

c++ - 如何在 C++ OCX 模块中指定采用 void* 的函数?

sql-server - 自动将多个 Excel 工作表导入到 SQL 中

c# - 带有 AsyncLocal 与 Scope 服务的单例

c# - 如何为整个类(class)禁用特定的代码分析警告

android - 如何编译 C++ 控制台程序以作为 android 进程运行?

windows - 如何在用户桌面上创建到计算机的快捷方式

oop - VB6 实现和事件