0

我已经创建了一个应用程序,该应用程序具有可以通过该应用程序查看数据库的功能。在 Visual Studio 2010(尚未发布)上,我制作的应用程序运行顺利,没有发现错误。但是,当我发布它并进行设置并将其安装在我的计算机上时,当我运行程序并单击查看数据库时,它给出了错误“对象引用未设置为对象的实例,但是当我检查回到Visual Studio 2010,没有出现错误,运行不流畅,刚安装应用程序时,出现错误。

这是我通过已安装的程序而不是通过 Visual Studio 2010(调试)运行应用程序时遇到的错误:

在此处输入图像描述

当我点击“继续”时,程序按原样运行并顺利运行,我只是想知道为什么这个错误只出现在安装的程序中,而不是在调试中。

有谁知道这会怎么发生?

这是详细信息:

在此处输入图像描述

4

1 回答 1

0

在发布模式下构建时,编译器很可能会优化某些东西,这可能会在运行时引起意外。也许您的一个对象正在被编译器“优化”的副作用初始化。

尝试解决问题的一种简单方法是将对有问题的方法的调用包装在 try/catch 中,并在捕获异常时将其与消息框中的完整堆栈跟踪一起弹出。您感兴趣的是实际发生空引用异常的行号。或者更好的是,将其写入日志文件,其中包含您想在运行时了解的任何其他信息。然后,重新部署您的应用程序,重新安装它,然后再试一次。一旦确定了哪个对象没有被初始化,那么您将需要分析您的代码以了解为什么只会在发布版本中而不是在调试版本中发生这种情况。你应该看看你是否使用了某种模式(或反模式),它可能会影响你代码中的其他地方。

于 2013-10-09T00:55:04.830 回答