我有一个c#windows应用程序(在插件架构中开发),我想从我的应用程序中记录所有未处理的异常。 我能够抓住所有的例外情况。
我想阅读文件名和例外情况中的行号。 (在 .Net 2.0 中)
我用过
if (exception.InnerException != null)
{
exception = exception.InnerException;
}
StackTrace trace = new StackTrace(exception, true);
string fileName = trace.GetFrame(0).GetFileName();
int lineNo = trace.GetFrame(0).GetFileLineNumber();
它在我的应用程序中有异常,如果引用dll中的任何异常我没有得到fileName和lineNumber
答案 0 :(得分:4)
此信息仅在相关DLL的“.pdb”文件可用时才可用。
因此,您应确保相应的“.pdb”文件与其对应的DLL一起使用。
您还需要在PDB文件中启用完整数据。默认情况下,调试版本执行此操作,但版本构建不包括行号信息。
您可以通过转到项目的Build页面来配置发布版本,确保选择了“Release”配置,然后单击页面底部的“Advanced”按钮。在“高级构建设置”对话框中,需要为“调试信息”设置选择“完整”。
答案 1 :(得分:0)
第一帧并不总是正确答案。就我而言,这是最后一个。一般来说,我认为它是第一个带文件的。