C# 代码在调试中工作并从VisualStudio运行,但发布模式会给出错误消息
关于调试和发布有很多问题,但我的情况不同。 下面是我的代码C# 代码在调试中工作并从VisualStudio运行,但发布模式会给出错误消息,c#,visual-studio-2013,C#,Visual Studio 2013,关于调试和发布有很多问题,但我的情况不同。 下面是我的代码 private void frmMDIStpDataView_Load(object sender, EventArgs e) { string[] tempCommandLine = Environment.GetCommandLineArgs(); if (tempCommandLine.Count() > 1 && !string.IsNullOrEmpty(tempCommandLine[1
private void frmMDIStpDataView_Load(object sender, EventArgs e)
{
string[] tempCommandLine = Environment.GetCommandLineArgs();
if (tempCommandLine.Count() > 1 && !string.IsNullOrEmpty(tempCommandLine[1]))
ModFormManager.strTmpPath = tempCommandLine[1];
m_FormManager = ModFormManager.FormManager;//Line where i am getting object reference error
//some other code
};
ModFormManager
是一个静态类,其所有成员都是静态的。FormManager
是非静态类的对象。如果我从VisualStudio2013运行,在调试和发布模式下不会出现此错误。如果我双击exe,这是在发布更多的内置我得到错误。我得到了innerexception,因为“对象引用未设置为对象的实例”调试模式通常初始化堆数据分配。程序可能依赖于此行为。查找未初始化的变量和缓冲区。如本例中的ModFormManager未初始化。创建ModFormManager的对象,然后使用它 你到底得到了什么例外?您知道GetCommandLineArgs中的第一个条目是可执行文件的文件名,其余的是在命令行中输入的附加参数。ModFormManager
的FormManager
未设置为对象的实例。您在哪里调用ModFormManager
的构造函数?您确定FormManager
已初始化吗?它是通过在本地工作但在发行版中不工作的东西初始化的吗?某些配置错误?如果属性ModFormManager.FormManager中存在异常,则应发布该属性的代码。您发布的代码与您的错误无关。@FabienBondi我在FormManager的构造函数中保留了messagebox,但在此之前代码流不会出现错误。这是程序员发现为AppDomain.CurrentDomain.UnhandledException事件编写事件处理程序不是可选的另一种情况。如果不这样做,那么您就不知道为什么没有附加调试程序的代码会失败。而且,当表单类的字段初始值设定项导致异常时,它从来都不简单。调用Debugger.Launch()是Q&D方法。