我使用installshield编译一个在调试期间工作正常的应用程序,或者在使用VS编译和发布时。
当我运行已安装的应用程序时,我收到以下错误消息:
有关调用实时的详细信息,请参阅此消息的结尾 (JIT)调试而不是此对话框。
**************异常文本************** System.ArgumentNullException:值不能为null。参数名称: System.IO.File.AppendAllText的路径(字符串路径,字符串内容) 在SerialPortListener.MainForm.MainForm_Load(Object sender,EventArgs e)in C:\用户\杰米\文件\ SerialPortListener \ SerialPortListener \ MainForm.cs:线 291在System.Windows.Forms.Form.OnLoad(EventArgs e)at System.Windows.Forms.Form.OnCreateControl()at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
在System.Windows.Forms.Control.CreateControl()at System.Windows.Forms.Control.WmShowWindow(Message& m)at System.Windows.Forms.Control.WndProc(Message& m)at System.Windows.Forms.ScrollableControl.WndProc(Message& m)at System.Windows.Forms.ContainerControl.WndProc(Message& m)at System.Windows.Forms.Form.WmShowWindow(Message& m)at System.Windows.Forms.Form.WndProc(Message& m)at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)在System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd,Int32) msg,IntPtr wparam,IntPtr lparam)**************已加载的程序集************** mscorlib 汇编版本:4.0.0.0 Win32版本:4.0.30319.18444建立者:FX451RTMGDR CodeBase:file:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll ---------------------------------------- SerialPortListener 汇编版本:1.0.0.0 Win32版本:1.0.0.0 CodeBase:file:/// C:/ Program%20Files%20(x86)/P%26L%20Software/P%26L%20Hardware%20Helper/SerialPortListener/obj/x86/Debug/SerialPortListener.exe ---------------------------------------- System.Windows.Forms 汇编版本:4.0.0.0 Win32版本:4.0.30319.18408建立者:FX451RTMGREL CodeBase:file:/// C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System.Drawing 汇编版本:4.0.0.0 Win32版本:4.0.30319.18408建立者:FX451RTMGREL CodeBase:file:/// C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ----------------------------------------系统 汇编版本:4.0.0.0 Win32版本:4.0.30319.34238内容:FX452RTMGDR CodeBase:file:/// C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll - - - - - - - - - - - - - - - - - - - - 系统配置 汇编版本:4.0.0.0 Win32版本:4.0.30319.18408建立者:FX451RTMGREL CodeBase:file:/// C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Xml 汇编版本:4.0.0.0 Win32版本:4.0.30319.34234内容:FX452RTMGDR CodeBase:file:/// C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ----------------------------------------辅助功能 汇编版本:4.0.0.0 Win32版本:4.0.30319.18408建立者:FX451RTMGREL
CodeBase:file:/// C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
************** JIT调试**************要启用实时(JIT)调试,请使用.config文件这个应用程序或计算机 (machine.config)必须在中设置jitDebugging值 system.windows.forms部分。该应用程序也必须编译 启用调试。
例如:
启用JIT调试时,将发送任何未处理的异常 JIT调试器在计算机上注册而不是由处理 这个对话框。
我已经尝试过按照它说并启用jit调试。但这并没有奏效。我似乎无法弄清楚这个问题的原因。我在表单的关键点添加了一些代码,将行号写入文本文件,这样我就可以看到它失败的地方,但似乎错误发生在那些记录的消息之前。如果我点击“继续”,则消息会一直显示,如果我一直点击,似乎它会慢慢地通过代码,但需要多次点击相同的错误。
以下是MainForm_Load方法:
private void MainForm_Load(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync(txtTerminal.Text);
File.AppendAllText(ConfigurationManager.AppSettings["ErrorLog"],"Line:284" + Environment.NewLine);
}
答案 0 :(得分:1)
您可以在MainForm_Load
中的MainForm
方法中生成路径。
失败,结果变为null
。至少那个例外是什么......