关于c#:在此文件夹中找不到匹配的符号文件

a matching symbol file was not found in this folder

我希望使用符号,但收到此错误:

a matching symbol file was not found in this folder

问题出在哪里?


我遇到的一件事是,调试在代码所在的项目上关闭了。在我的例子中,我做了一个名为"开发人员"的新配置,默认情况下,调试被关闭。

  • 右键单击相关项目
  • 性质
  • 建造
  • 高级(右下角)
  • 将调试信息设置为完整
  • 重新编译

  • 我和@dmainevent有同样的问题。显然,我使用的DLL与我刚编译的PDB的版本不同,所以我收到了错误消息。

    如果存在此问题,请尝试从同一编译运行中使用dll和pdb。


    我尝试了所有可能的解决方案,最后,当我禁用了Properties > DebugDebugger engines下的选项Enable native code debugging时,它起了作用。


    我碰到这个问题,答案很简单。

    Visual Studio有两个项目级设置,可以创建.pdb文件。

  • 链接器:配置属性->链接器->调试->生成程序数据库文件="xxxx.pdb"
  • 编译器:配置属性-> C/C++ +>输出文件->程序数据库文件名="YYYY.PDB"
  • 您需要1进行调试。忘记2。将文件2的名称与文件1的名称不同,以解决此错误。

    我不知道为什么微软将2指定为.pdb文件。那只是令人困惑。


    我在debug=>模块窗口中得到的错误是"在这个文件夹中找不到匹配的符号文件",即使在dll和pdb都可用并一起构建之后,我也无法调试到主项目引用的目标dll中。

    在这里发布这个消息,以防有人使用目标dll的"混合平台"构建进行浏览。我做了两件事来克服这个问题:

  • 在使用目标dll的解决方案中,取消选中工具=>选项=>调试=>常规=>仅启用我的代码(JMC)中的"仅我的代码"。

  • 选中相关项目属性=>debug中目标dll解决方案中的"启用本机代码调试"。


  • 如果没有更多关于您正在做什么的详细信息,很难超越"调试器正在查找与编译代码匹配的符号文件,并且在编译代码所在的文件夹中找不到。"

    需要考虑的一些事情:

  • 您是否创建符号作为编译的一部分?(检查项目属性)
  • 是否使用符号服务器(如果是,它是否指向正确的位置)
  • 这是从第三方编译的代码吗?在这种情况下,由于您显然拥有源代码,所以可以自己编译它。
  • 如果你想得到更好的答案,考虑澄清你的问题。尤其是"我要使用符号"是什么意思?


    嗯,解决办法取决于你的具体问题。我尝试了在StackOverflow和其他网站上可以找到的所有东西。我跟踪的一条线索就是这个。这也没有帮助。当我注意到我的可执行项目不包含对要调试的库的引用时,这个问题立即得到了解决。所以我只是添加了对那个项目的引用。

    **ps:**此问题也可能出现,因为可执行程序集引用的程序集可能与引用中的程序集不匹配。因此,在这种情况下,只需删除已经存在的引用并添加新的引用。

    希望这有帮助!


    对于Biztalk(和其他)项目,这可能是因为GAC中已经存在您尝试调试的程序集版本。当运行单元测试或按F5进行调试时,将在本地编译新版本。但是,GAC中的版本正在使用中,新创建的PDB与GAC中的DLL不匹配。

    解决此问题的一种方法是使用配置管理器取消对除单元测试项目之外的所有内容的构建,如下所示:

    Config Manager


    我发现这是因为属性=>debug=>start action被设置为启动外部程序而不是项目。所以新生成的pdb文件不匹配,因为实际的exe文件是错误的。


    我最近也遇到过这个问题。可以通过选择myproject->properties->linker->debugging->generate debug info->optimize for debugging(/debug)"来修复它。