我们有一个传统的VB6应用程序,它运行一个单独的C#EXE。 VB6应用程序依赖于C#应用程序来执行特定任务。任务成功完成后,将返回退出代码0,如果失败则返回1.
这适用于我们的开发机器(是的,我们尝试过多台机器)。但是,当我们在客户端计算机上尝试它时,无论任务结果如何,它总是返回0退出代码。
真正奇怪的是,这个场景已经完美运行了大约8个月,直到第一次发生。
我们甚至尝试制作一个简单的C#'跑步者应用程序'只调用exe并捕获其退出代码。同样,它在我们的开发机器上运行良好,但总是在客户端机器上返回0。因此,我们得出结论,问题不在VB6程序中。
这是C#'亚军应用程序'调用.exe程序的代码段:
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);
好吧,我们怀疑客户端计算机操作系统上有一些配置会导致客户端计算机出现这种奇怪的行为。
答案 0 :(得分:2)
基于Michael Gosselin对this question的评论,将项目编译为"控制台应用程序"而不是作为" windows应用程序"。