C# 堆栈跟踪不返回行号和文件名
我正在处理写入异常,但文件名返回null,行号返回0。我打开任何其他项目,它都会成功运行。我认为这与调试设置有关。如何更改项目设置以响应代码C# 堆栈跟踪不返回行号和文件名,c#,stack-trace,C#,Stack Trace,我正在处理写入异常,但文件名返回null,行号返回0。我打开任何其他项目,它都会成功运行。我认为这与调试设置有关。如何更改项目设置以响应代码 public static void WriteUnexpectedErrors(Exception ex) { StackTrace trace = new StackTrace(ex, true); string fileName = trace.GetFrame(0).GetFileName(); int lineNo = t
public static void WriteUnexpectedErrors(Exception ex)
{
StackTrace trace = new StackTrace(ex, true);
string fileName = trace.GetFrame(0).GetFileName();
int lineNo = trace.GetFrame(0).GetFileLineNumber();
}
这段代码产生了一些结果,但上面的代码不起作用,尤其是GetFrame(0).GetFileName()
在项目属性的“生成”选项卡上的“高级设置”中,检查调试信息。确保调试信息设置设置为
full
或pdb only
您是否将PDB文件与EXE一起部署?是的,我在bin/debug文件中看到了一个。请检查您的值以了解
。如果为false,请为您的本地环境将其更改为true,但我正在使用console应用程序。如何为app.config编写,但full
和pdb only
都没有给出文件名和行号
foreach (var frame in trace.GetFrames())
{
if (!string.IsNullOrEmpty(frame.GetFileName()))
{
Console.WriteLine(frame.GetFileName());
}
if (frame.GetFileLineNumber() > 0)
{
Console.WriteLine(frame.GetFileLineNumber());
}
}