我已经使用可以通过该应用程序查看数据库的函数创建了一个应用程序。在Visual Studio 2010上(尚未发布),我所做的应用程序运行顺利,没有发现错误。但是,当我发布它并进行设置并在我的计算机上安装它时,当我运行程序并单击视图数据库时,它给出了错误“对象引用未设置为对象的实例,但是当我在Visual Studio 2010中检查时,错误没有出现并且运行顺利。就在我安装应用程序时,出现错误。
这是我通过已安装的程序运行应用程序时遇到的错误,而不是通过Visual Studio 2010(调试):
当我点击“继续”时,程序按原样运行并顺利运行,我只是想知道为什么这个错误只出现在已安装的程序中,而不是出现在调试中。
任何人都知道会发生什么?
以下是详细信息:
答案 0 :(得分:0)
在构建发布模式时,编译器很可能会对某些内容进行优化,这可能会在运行时引起意外。也许你的一个目标是由编译器“优化掉”的副作用初始化。
尝试解决问题的一个简单方法是在try / catch中包含对违规方法的调用,并在捕获异常时,将其与消息框中的完整堆栈跟踪一起弹出。您感兴趣的是实际发生空引用异常的行号。或者更好的是,将其写入日志文件,其中包含您希望在运行时了解的任何其他信息。然后,重新部署您的应用程序,重新安装它,并再次使用它。一旦你弄清楚哪个对象没有被初始化,那么你将需要分析你的代码,看看为什么只会在发布版本中而不是在调试版本中发生。您应该查看是否使用某种模式(或反模式),它可能会影响代码中的其他位置。