我发现我的代码出了什么问题。在记录器部分,使用 log4Net,我有这样的代码:
public static void Info(string strMsg)
{
StackTrace st = new StackTrace(true);
StackFrame sf = st.GetFrame(1);
_log.Info(string.Format("{0,-25} L{1:0000} {2}", sf.GetFileName().Substring(sf.GetFileName().LastIndexOf(@"\") + 1), sf.GetFileLineNumber(), strMsg));
}
所以我将条目更改为如下内容:
public static void Debug(string strMsg)
{
StackTrace st = new StackTrace(true);
#if DEBUG
StackFrame sf = st.GetFrame(1);
_log.Debug(string.Format("{0,-25} L{1:0000} {2}", sf.GetFileName().Substring(sf.GetFileName().LastIndexOf(@"\") + 1), sf.GetFileLineNumber(), strMsg));
#else
_log.Debug(string.Format("{0}",strMsg));
#endif
}
现在没有 PDB 文件一切正常。因此,从堆栈跟踪中提取信息需要 PDB 文件。