2011-02-15 64 views
0

每当我尝试在除自己的开发系统之外的另一台机器上运行它时,我的程序都会崩溃。它运行得很好,但在我安装和运行时崩溃了。如何在执行期间诊断我的VB.NET程序崩溃?

更糟糕的是,它只给了我通用的“[此处的名称]遇到问题,需要关闭,我们很抱歉给您带来不便”。所以我永远无法找出原因,并在哪里崩溃!

http://img513.imageshack.us/img513/6010/ownerror.jpg

错误签名是:

EventType : clr20r3  P1 : [name here].exe  P2 : 1.0.0.0  P3 : 4d5a8bcb  
    P4 : own  P5 : 1.0.0.0  P6 : 4d5a8bcb  P7 : d  P8 : c6  
    P9 : system.invalidoperationexception 

我甚至把对错误转到DOH在Form_Load,我还是什么也没得到。它只是装载在form_load上的东西是me.show()而那就是它!

如果任何人有任何洞察力,我可以做什么来弄清楚它的崩溃,那将是非常棒的! :O)

感谢,

大卫

回答

1

这里有几件事情,试图/考虑:

1)你检查Windows应用程序日志,看看你能得到更多的明确的错误信息?

2)尝试注释尽可能多的初始化代码以缩小问题范围。对我而言,这听起来非常像环境依赖性,但你首先要消除你的代码。

3)你的机器和其他机器有什么不同?您的DEV机器上是否有运行时所需的库(如VB运行时)?

+0

当我检查日志时,我可以看到它说** .NET运行时2.0错误报告**但我知道我已经安装了框架2.0SP2/3.0SP2/3.5SP1&4! – StealthRT 2011-02-15 14:49:32

+0

我已经评论了一切,但在form_load代码中的me.show(),但它仍然有这个错误。 :o( – StealthRT 2011-02-15 14:50:12

+0

该程序仅使用** framework 2.0 **控件和** Imports Oracle.DataAccess.Client **。 – StealthRT 2011-02-15 14:50:58

1

另一件事。

请勿使用ON ERROR GOTO ...这是一种跟踪错误的旧方法。我甚至不知道它现在是否有效。 yse尝试...赶上。

+0

我用try/catch替换它,但仍然没有错误信息,而不是通用的。 – StealthRT 2011-02-15 14:54:22

1

我的经验是,这通常是一个缺少/破损的app.config文件的问题。它永远不会实际运行您可以观看/跟踪的任何代码,因为它永远不会完成加载基本配置。

1

我在过去所做的解决类似问题的方法是在干净的Windows安装上安装Visual Studio,然后安装我的程序。这使我能够看到我的程序中发生错误的位置。在我的情况下,这是一个缺少的DLL文件。

0

它可能是导致错误的InitializeComponent中的一些代码。在你的Form.vb中,为New()事件添加一个处理程序,并在那里显示带有初始化组件调用的New()方法。将该代码放在try catch块中,看看是否有任何不同的错误。