我有DLL,我有用于创建DLL的确切来源。当我们从客户那里获得转储文件时,我希望我们的本地符号服务器工作。 (在我们的产品的下一个补丁/发布之前,无法在客户站点更新DLL)
答案 0 :(得分:9)
这似乎是不可能的。在这里看一下:Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with?
或者这篇文章:PDB Files: What Every Developer Must Know
引用“PDB文件:每件事......”:
极其重要的部分是调试器如何知道这是 这个二进制文件的精确匹配PDB文件。这是通过GUID完成的 它嵌入在PDB文件和二进制文件中。如果GUID确实如此 不匹配,你当然不会在源代码上调试模块 水平。
.NET编译器和本机链接器将此GUID放入 二进制和PDB。由于编译行为会创建此GUID,因此请停止并执行此操作 对此稍加思考。如果你有昨天的构建并且做了 不保存PDB文件你能再次调试二进制文件吗? 没有!这就是为每个人保存PDB文件至关重要的原因 建立。因为我知道你在考虑它,所以我会继续回答 问题已经在你脑海中形成:不,没有办法改变 GUID。