为什么Visual Studio在调试时会询问cs文件?

时间:2014-04-10 08:37:48

标签: visual-studio visual-studio-debugging pdb-files

我在我的项目中包含了一个dll文件。我从库文件夹中引用它,其中也存在dll的pdb文件。当我编译时,我看到dll和pdb都被复制到主项目的bin文件夹中。在小项目上,这非常有效,我可以毫无问题地调试到dll。但是,有时候,在较大的项目中,VS会不断询问特定的cs文件,即使它们的pdb文件包含在项目bin文件夹中。如果我能找到那些cs文件就行了,但这很烦人。

为什么Visual Studio有时会要求cs文件,有时候不会?

2 个答案:

答案 0 :(得分:5)

它尽力提供信息,但有时候信息不完整。当它准备放弃时,它为您提供了提供文件的机会,以防万一你知道更好。

PDB通常存储文件的路径,就像调用msbuild来构建DLL时一样。如果路径已更改(例如,您在与构建DLL的位置不同的计算机上,或者只是文件系统上的文件已移动),则路径信息的效果不佳。

有一个名为source indexing的进程可以将足够的信息嵌入到PDB中,以便visual studio可以在源代码管理系统中重新定位源文件(这样就可以完全正确的文件,就像在构建时一样)但这通常是在构建发生后必须执行的额外步骤来修改PDB。

答案 1 :(得分:2)

尝试一下(来自MSDN Forum

工具->选项->调试->符号->空符号缓存(按钮)

enter image description here

然后

工具->选项->调试常规->启用仅我的代码(复选框)

enter image description here

,然后再次开始调试。如果它是由意外的第三方组件调试符号启动的,则该问题不包含源但仅包含故事文件路径,因此应该可以解决该问题。