【发布时间】:2012-03-27 22:24:30
【问题描述】:
我有一个项目在其他 dll 中多次引用我自己的代码。当我运行网站时,其中一个 dll 会加载其 pdb 文件,而另一个则不会。
从输出中我看到:
LOTS_OF_TEXT\Shared.BusinessLayer.DLL'
LOTS_OF_TEXT\Shared.Visual.Utilities.DLL',已加载符号。
我仔细检查过,它们在“LOTS_OF_TEXT”位置都有相应的 pdb 文件……但其中一个加载了符号(并允许调试),而另一个没有。
为什么?如何让 Shared.BusinessLayer.DLL 加载符号以便调试它?
编辑
作为参考,我让 Belvedere 在 pdb 文件更改时将它们复制到 /AppData/Local/Temp/SymbolCache...这是我的调试设置告诉 Visual Studio 查找符号的地方。
【问题讨论】:
-
顺便说一句...Belvedere 是什么?谷歌上的“Belvedere C#”没有任何用处。
-
复制 .pdbs 通常是个坏主意。将它们留在生成它们的位置,可执行文件存储原始路径。 Debug + Windows + Modules,右键单击模块并选择“符号加载信息”以查看调试器在哪里查找 pdb。
-
在您当前的构建配置中,是否为调试设置了特定项目?
-
@RitchMelton : Belvedere 是一个免费实用程序,用于根据规则管理文件。
-
@HansPassant :当我查看模块时,我看到的是“PDB 与图像不匹配”......但我不知道为什么。该项目已设置为调试。