如何在执行过程中诊断VB.NET程序崩溃?

如何在执行过程中诊断VB.NET程序崩溃?,vb.net,visual-studio-2010,error-handling,Vb.net,Visual Studio 2010,Error Handling,每次我试图在我自己的开发系统以外的另一台机器上运行我的程序时,它总是崩溃。它在我的电脑上运行得很好,但当我安装并运行它时,它会在其他人的电脑上崩溃 更糟糕的是,它只给了我一个通用的“[name here]遇到了问题,需要关闭。给您带来的不便我们深表歉意”。所以我永远也找不到它崩溃的原因和地点 错误签名为: EventType : clr20r3 P1 : [name here].exe P2 : 1.0.0.0 P3 : 4d5a8bcb P4 : o

每次我试图在我自己的开发系统以外的另一台机器上运行我的程序时,它总是崩溃。它在我的电脑上运行得很好,但当我安装并运行它时,它会在其他人的电脑上崩溃

更糟糕的是,它只给了我一个通用的“[name here]遇到了问题,需要关闭。给您带来的不便我们深表歉意”。所以我永远也找不到它崩溃的原因和地点

错误签名为:

  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的表单加载中,但仍然一无所获。它加载到表单上的唯一内容是me.show(),就是这样

如果有人知道我能做些什么来弄清楚它到底撞到了什么,那就太棒了o)

谢谢


David

以下是一些需要尝试/考虑的事情:

1) 您是否检查了Windows应用程序日志以查看是否可以获得更明确的错误消息

2) 尝试注释尽可能多的初始化代码以缩小问题范围。对我来说,这听起来很像是一种环境依赖,但您希望首先消除代码


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

以下是一些需要尝试/考虑的事项:

1) 您是否检查了Windows应用程序日志以查看是否可以获得更明确的错误消息

2) 尝试注释尽可能多的初始化代码以缩小问题范围。对我来说,这听起来很像是一种环境依赖,但您希望首先消除代码

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

另一件事

不要在错误转到时使用。。。这是一种跟踪错误的老方法。我甚至不知道它现在是否有效。你试试。。。接住它。

另一件事


不要在错误转到时使用。。。这是一种跟踪错误的老方法。我甚至不知道它现在是否有效。你试试。。。改为捕获。

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

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

我过去解决类似问题的方法是在干净的windows安装上安装Visual Studio,然后安装我的程序。这使我能够看到在我的程序中发生错误的地方。在我的例子中,它是一个丢失的dll文件。

我过去解决类似问题的方法是在干净的windows安装上安装Visual Studio,然后安装我的程序。这使我能够看到在我的程序中发生错误的地方。在我的例子中,它是一个丢失的dll文件。

可能是InitializeComponent中的某些代码导致了您的错误。在Form.vb上,为New()事件添加一个处理程序,该处理程序将显示包含initialize组件调用的New()方法。将该代码放入try-catch块中,查看是否捕获到任何不同的错误。

可能是InitializeComponent中的某些代码导致了错误。在Form.vb上,为New()事件添加一个处理程序,该处理程序将显示包含initialize组件调用的New()方法。将该代码放入try-catch块中,查看是否捕获到任何不同的错误。

当我检查日志时,我可以看到它显示.NET Runtime 2.0错误报告,但我知道已安装framework 2.0SP2/3.0SP2/3.5SP1&4!除了加载代码中的me.show()之外,我已经注释掉了所有内容,但它仍然存在以下错误:o(该程序仅使用framework 2.0控件并导入Oracle.DataAccess.Client。这些计算机上是否安装了Oracle客户端?当我查看日志时,可以看到它显示.NET Runtime 2.0错误报告,但我知道已安装framework 2.0SP2/3.0SP2/3.5SP1&4!我已注释掉除me.show()之外的所有内容以形式_加载代码,但仍有此错误。:o(该程序仅使用framework 2.0控件并导入Oracle.DataAccess.Client。这些计算机上是否安装了Oracle客户端?我将其替换为try/catch,但除了通用的错误消息外,仍然没有其他错误消息。它可能不是初始化代码本身,而是表单中的某些内容。您能描述一下表单上的内容吗还有,我不知道me.show在这种特殊情况下是否有用。我对导入的Oracle.DataAccess.Client进行了注释,它现在似乎可以工作了。但我对如何为导入的客户端获取驱动程序存在分歧……问问自己,你是如何让它在你的计算机上工作的?它是你必须单独安装的驱动程序吗有什么意义吗?如果你为你的项目做了一个安装工具包,你可能想把它包括在。或者至少在最低规格上记录它。你可能可以在网上找到信息。我用try/catch替换了它,但除了一般的错误消息外,仍然没有其他错误消息。它可能不是初始化代码本身,而是找到的东西在你的表单中。你能描述一下表单上的内容并把代码也放进去吗?另外,我不知道me.show在这种特殊情况下是否有用。我对导入的Oracle.DataAccess.Client进行了注释,它现在似乎可以工作了。但我对如何获取导入客户端的驱动程序存在分歧……问问你自己,你是如何让它在你的计算机上工作的r?它是一个在某个时候必须单独安装的驱动程序吗?如果你为你的项目做了一个安装工具包,你可能想把它包括在。或者至少在最小的spe上记录它