有没有办法在发布模式下显示.NET程序集构建/部署的堆栈跟踪中的行?
更新:
我的应用程序分为三个类库项目和一个ASP.NET"网站"项目.我试图追踪的错误是在三个类库项目之一.我只为生成"未设置为对象实例的对象引用"错误的类库项目部署了pdb文件.
行号仍未显示在堆栈跟踪中.我是否需要为所有项目部署pdb文件以获取堆栈跟踪中的行号?
工作方案
为每个应用程序部署pdb文件修复了行号问题.
进入要查看堆栈跟踪行号的项目的"属性"窗口.
单击Build"垂直选项卡".
选择"发布"配置.检查DEBUG常量参数.
取消选中"优化代码"参数以避免内联代码偶尔出现跟踪问题(此步骤不是必需的).
按Advanced ...按钮并选择Output - > Debug Info - > pdb-only.
使用程序集部署生成的.pdb文件.
通过以下评论实施:
要检查的另一件事是在"打包/发布Web"部分中,"排除生成的调试符号"复选框也未选中
在VS2012中,您还需要取消选中属性的"包/发布Web"部分中的"排除生成的调试符号".
我的解决方案
将pdb文件复制到可执行文件所在的文件夹中.
现在我可以在运行exe文件时查看行号.
这是理由
http://msdn.microsoft.com/en-us/library/ee416588%28v=vs.85%29.aspx
我在过去遇到过问题,我觉得需要部署带有发布版本的PDB文件以便追踪错误.原因是,就像你说的那样,异常发生在一个非常大的方法中,我无法准确地确定它发生的位置.
这可能表明该方法需要重构为更小,更精细的方法.不是一个适合所有答案的,但这种方法在短期内(我经常在重构期间发现错误)和长期运行对我有利.
只是一个想法.