【发布时间】:2012-05-23 00:28:30
【问题描述】:
我正在使用 Project White 测试我的应用程序。该项目的二进制文件包括 Castle 项目的 DLL:Castle.DynamicProxies2.dll(或类似的东西)。不幸的是,没有为此 DLL 提供符号 (PDB) 文件。一堆其他 DLL 确实有自己的符号文件。
当我运行 UITest 时,为这个 Castle DLL 生成符号文件需要很长时间。我想将这个生成的 DLL 保存在某个地方,这样就不必一直生成它。
我的 Visual Studio 设置中有一个符号缓存文件夹,当我运行应用程序并按“加载所有符号”时,我收到一个消息框,告诉我它正在下载 Castle DLL 的符号文件。但是,它没有出现在我的缓存文件夹中(可能是因为它是专有的非 Microsoft DLL)。 “总是在模块旁边加载符号”选项已打开。如果我关闭它,甚至我自己的项目的符号都不会加载。 Castle DLL 被复制到输出文件夹,否则它甚至不会运行。
有没有办法保留这个自动生成的符号文件,而不是每次都创建它?我查看了临时文件夹,但找不到。
【问题讨论】:
-
PDB 文件不是从已编译的 DLL 生成的,因为准确生成它们所需的数据不再存在于 DLL 中,仅存在于源代码中(例如,局部变量名)。它们通常包含在 DLL 中用于调试目的。可以使用反编译器重新创建 PDB 的近似值,但您似乎没有使用它。那么“生成符号文件”到底是什么意思?确定生成了什么?
-
好吧,Visual Studio 告诉我“正在为 Castle 加载符号文件...”我希望有办法保存它或告诉 VS 不要查找它,因为每次都需要相当长的时间.行为现在似乎消失了,不知道我改变了什么。我将调试选项更改为仅加载我自己的解决方案程序集的符号,同时仍加载模块旁边的符号文件。
标签: .net visual-studio-2010 symbols visual-studio-debugging