Windows表格应用程序可以在Release中工作,但不能在Debug中工作

德斯莫

成员
已加入
2018年1月3日
留言内容
14
编程经验
Beginner
Visual Studio企业版2015。
简单的Windows Forms C#应用程序,其中包含几个TextBoxes。文本框中的信息存储在 应用程序设置 文件,以便保存条目并在退出/启动时重新加载。

到目前为止,我一直在VS中构建和运行该应用 建造 配置。现在,当我尝试构建/运行它时,突然 NullReferenceException 那是以前没有的。上次成功运行后,代码无任何变化。奇怪的是,异常发生在 application.Designer.cs 文件,我根本没有手动编辑过。我的代码包含所有必要的尝试。这是其中的代码 application.Designer.cs 关于哪个VS突然开始抱怨(在 红色的):

C#:
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public int rowcount {
    get {
        [COLOR=#ff0000]return ((int)(this["rowcount"]));[/COLOR]
     }
     set {
        this["rowcount"] = value;
     }
}

VS调试器的完整错误:

C#:
[B]NullreferenceException was unhandled[/B]

An unhandled exception of type 'System.NullreferenceException' occured in ...

Additional information: Object reference not set to an instance of an object.

据我所知,无法对该文件进行任何尝试捕获检查?无论如何,当我切换到 释放 配置,做了一些构建/运行,然后切换回 除错.

当我将配置切换到 释放 并进行构建/运行,然后像以前一样工作。没有错误。

我已经清理了解决方案并进行了重建,但是除此之外,我不知道还能尝试什么。

我还尝试创建新配置,从(工作)复制设置 释放 配置。当我尝试构建/运行它时,我得到了与 除错 configuration.

有任何想法吗?我希望能够在两个版本中构建并运行该解决方案 除错释放 配置。无论如何,我希望这个看似随机的错误消失了。我讨厌这样的错误,这似乎毫无道理。
 
Last edited:

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,523
地点
悉尼,澳大利亚
编程经验
10+
请注意,我确实在发布帖子后阅读了其余内容,但我确实没有提供解决方案。也就是说,这听起来不正常,并且可能有损坏。如果不是很繁重的任务,我倾向于创建一个新项目并开始将现有类型导入其中。
 

德斯莫

成员
已加入
2018年1月3日
留言内容
14
编程经验
Beginner
是的我创建了一个新解决方案,并手动复制了原始解决方案。在这种解决方案中,在 释放 除错 配置。

因此,这是新状态:

原始解决方案:
-调试配置:突然开始在代码访问application.settings文件的任何地方引发NullReferenceException异常。
-发布配置:仍然仅在有实际意义的地方抛出NullReferenceException。
-新配置:在代码访问application.settings文件的任何地方都引发NullReferenceException异常。

从原件手动复制的新解决方案:

-调试配置:在代码访问application.settings文件的任何地方都引发NullReferenceException异常。
-版本配置:在代码访问application.settings文件的任何地方都引发NullReferenceException异常。

Visual Studio使得自己很难被爱。

如果我在访问application.settings文件的任何地方添加try-catch块,或者使用全局try-catch,则可以使新解决方案正常工作。但是为什么到了几个小时前我却不得不这么做?

更新:
作为最后的测试,我手动克隆了解决方案。将其复制为另一个名称,然后更改所有名称引用。它运行正常,但存在与原始版本完全不存在的相同问题。
 
Last edited:
最佳 底部