发布模式下.NET程序集堆栈跟踪中的显示行号

发布模式下.NET程序集堆栈跟踪中的显示行号

是否有方法显示.NET程序集生成/部署在发布模式下的堆栈跟踪中的行?

最新情况:

我的应用程序分为三个类库项目和一个ASP.NET“网站”项目。我试图跟踪的错误是在三个类库项目中的一个。我只为生成“对象引用未设置为对象实例”错误的类库项目部署PDB文件。

行号仍未显示在堆栈跟踪中。是否需要为所有项目部署PDB文件以获取堆栈跟踪中的行号?

工作溶液

为每个应用程序部署PDB文件解决了行号问题。


千巷猫影
浏览 467回答 3
3回答

Cats萌萌

进入要查看堆栈跟踪行号的项目的“属性”窗口。单击Build“垂直选项卡”。选择“释放”配置。检查调试常量参数。取消选中“优化代码”参数,以避免内联代码偶尔出现跟踪问题(此步骤并不重要)。按高级.。按钮并选择Output->DebugInfo->PDB-仅限。使用程序集部署生成的.pdb文件。执行时有以下评论:要检查的另一件事是在“包/发布Web”部分中,“排除生成的调试符号”复选框也未选中

忽然笑

在VS 2012中,您还需要取消选中属性的包/发布Web部分中的“排除生成的调试符号”。

小唯快跑啊

在过去,我遇到了一些问题,我觉得需要部署带有发行版构建的PDB文件,以便跟踪错误。原因是,就像你说的,异常发生在一个非常大的方法中,我无法准确地指出它发生在哪里。这可能表明该方法需要重构为更小、更细粒度的方法。并不是任何一种方法都适用于所有的答案,但这种方法在短期内(我经常在重构过程中发现了bug)和长远来看都很适合我。
打开App,查看更多内容
随时随地看视频慕课网APP