Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 该程序在dev机器上运行,但赢得了';不要在试验机上启动_C#_Startup - Fatal编程技术网

C# 该程序在dev机器上运行,但赢得了';不要在试验机上启动

C# 该程序在dev机器上运行,但赢得了';不要在试验机上启动,c#,startup,C#,Startup,我写这个程序已经有一段时间了,我终于准备好开始测试它了。它在我的开发机器上100%工作,但我想在从未运行过的机器上尝试。所以,我把我的程序放到一台测试计算机上。当我双击exe时,什么也没发生。我打开任务管理器,然后再试一次。我看到这个过程开始了,但大约5秒钟后,它消失了。没有错误,没有例外,什么都没有。我该如何着手找出哪里出了问题?我还是个新手,从来没有发生过这种事。谢谢你的帮助 编辑 对不起,之前没提。这是一个winforms应用程序 编辑2 结果是,我试图将一个适用于64位操作系统的dll转

我写这个程序已经有一段时间了,我终于准备好开始测试它了。它在我的开发机器上100%工作,但我想在从未运行过的机器上尝试。所以,我把我的程序放到一台测试计算机上。当我双击exe时,什么也没发生。我打开任务管理器,然后再试一次。我看到这个过程开始了,但大约5秒钟后,它消失了。没有错误,没有例外,什么都没有。我该如何着手找出哪里出了问题?我还是个新手,从来没有发生过这种事。谢谢你的帮助

编辑

对不起,之前没提。这是一个winforms应用程序

编辑2


结果是,我试图将一个适用于64位操作系统的dll转换成32位操作系统。在Windows XP中,这引发了BadImageFormatException。然而,在Windows7中,正如我所说的,它根本没有抛出任何异常。

如果您运行的是控制台应用程序,它可能会运行然后自行关闭。 尝试打开命令提示符,然后从那里执行应用程序。
如果您的程序有输出,那么您将在该命令窗口中看到它。

是否检查了应用程序事件日志

您是否安装了必要的.Net版本


也许您应该在整个应用程序中对MessageBox.Show(“我失败了这里”)的调用进行更多的异常处理。

毫无疑问,这是一个难题。我以前不得不调试这种类型的东西

第一点有用的信息是没有抛出异常。这告诉我实际代码中的某个地方是解决问题的关键。您要么捕获异常并关闭,要么您的代码命中它认为是“正常”的退出条件,并关闭它将考虑正常方式。


为了弄清楚它退出的位置和原因,我将在应用程序的关键点添加调试日志记录,并将一个侦听器附加到“调试/跟踪侦听器”集合中,该集合将写入文件。“关键点”是应用程序应该退出(或窗口的主窗体应该关闭)的位置,以及任何“catch”块或错误事件处理程序中的位置。在测试计算机上运行这个新版本,看看它给了你什么。这应该能告诉你幕后程序的基本流程,以及它是通过什么机制关闭的。

段落可能很好!+它是一个控制台程序吗?调试器向你展示了什么?您应该使用调试器在测试机上启动您的程序,并查看发生了什么。@StarPilot:作为学习者,我可以使用什么调试器启动程序?谢谢不幸的是,在这种情况下,您需要的主要调试环境是VS的副本。目前我自己也有同样的问题。我无法将visual studio的副本安装到测试环境中,因为它必须尽可能保持“干净”。因此,我创建了一个简单的WriteToLog文件方法,并让应用程序在关键阶段写入文本文件。要想解决真正的问题还有很长的路要走。您可以将任意多的信息放入日志中。我让它写下方法的名称以及关键点。我还让它写出它遇到的任何异常。我发现这是调试我要测试的dll的最佳方法。我在其中添加了一些日志记录,并发现我试图在32位操作系统中加载64位dll。太傻了。