我们有一个旧版 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/