并拥有一个 .NET 4.5.2 项目
版本号是你的问题。这是参考源的一个普遍问题,微软没有保持更新到足以为新框架版本提供源。更麻烦的是,安全性和稳定性更新。从事此工作的人很清楚这个问题,他们在他们的演示文稿中指出这是一个问题,但它目前并且一直具有 // 待办事项的状态。
这是你可以想象的,首先从你的符号缓存中删除 System.pdb(MicrosoftPublicSymbols 中的那个)。然后开始调试您的测试程序,调试器将从服务器检索一个新的 PDB。使用 Debug > Windows > Modules,右键单击 System.dll 并选择“符号加载信息”。在我的机器上看起来像:
C:\projects2\ConsoleApplication407\bin\Debug\System.pdb: Cannot find or open the PDB file.
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.pdb: Cannot find or open the PDB file.
C:\Windows\System.pdb: Cannot find or open the PDB file.
C:\Windows\symbols\dll\System.pdb: Cannot find or open the PDB file.
C:\Windows\dll\System.pdb: Cannot find or open the PDB file.
C:\temp\symbols\System.pdb\c464b02c2bf04080adcad166dc729c151\System.pdb: Cannot find or open the PDB file.
C:\temp\symbols\MicrosoftPublicSymbols\System.pdb\c464b02c2bf04080adcad166dc729c151\System.pdb: Cannot find or open the PDB file.
SYMSRV: C:\temp\symbols\System.pdb\C464B02C2BF04080ADCAD166DC729C151\System.pdb not found
SYMSRV: http://referencesource.microsoft.com/symbols/System.pdb/C464B02C2BF04080ADCAD166DC729C151/System.pdb not found
http://referencesource.microsoft.com/symbols: Symbols not found on symbol server.
SYMSRV: System.pdb from http://msdl.microsoft.com/download/symbols: 96985 bytes
http://msdl.microsoft.com/download/symbols: Symbols downloaded from symbol server.
C:\temp\symbols\System.pdb\C464B02C2BF04080ADCAD166DC729C151\System.pdb: Symbols loaded.
您可以看到它在正常位置搜索 PDB 并没有找到它。然后联系 SYMSRV。它应该首先转到http://referencesource.microsoft.com
,但该服务器说“未找到”。您将从常规的 msdl 服务器获得副本,该副本没有必要的文件 + 行号调试信息。
对此没有干净的解决方法,您必须再次将您的机器降级到参考源版本。使用 Windows 8.1 我无法做到的事情。而且不应该,我用的是VS2013。Redgate 的 Reflector 是另一种选择。
我为此创建了一个UserVoice 项目,它需要更多的投票。
更新:参考源现已更新至 4.5.2(2015 年 3 月)