无法步入.NET框架源代码

我正在使用Visual Studio 2013,并有一个.NET 4.5.2项目。 我已经按照以下页面设置了我的设置:

http://referencesource.microsoft.com/setup.html

通过这个设置,我可以看到所有必要的符号都被下载并加载了,但是我不能进入如下代码:

var cookieContainer = new System.Net.CookieContainer(); 

我得到一个来源不可用消息。

我可以进入下面的代码就好了:

 Console.WriteLine("test"); 

你有什么想法,为什么我可以从mscorlib.dll代码,但不能从System.dll代码进入?

并有一个.NET 4.5.2项目

版本号是你的问题。 参考源是一个普遍的问题,微软并没有保持足够的更新来为新的框架版本提供源代码。 更麻烦的是,为了安全和稳定的更新。 在这个问题上工作的人很清楚这个问题,他们指出这是一个问题在他们的介绍,但它目前,并且一直有,待办事项的地位。

这是你可以想象的东西,首先从你的符号caching(MicrosoftPublicSymbols中的一个)中删除System.pdb。 然后开始debugging你的testing程序,debugging器将从服务器中检索一个新的PDB。 使用debugging> Windows>模块,右键单击System.dll并select“符号加载信息”。 在我的机器上,看起来像:

 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. 

你可以看到它在正常位置searchPDB,但没有find它。 然后联系SYMSRV。 它首先到http://referencesource.microsoft.com ,因为它应该,但该服务器说“找不到”。 而且你会从常规的msdl服务器获得拷贝,这个被剥离的服务器没有必要的文件+行号debugging信息。

有没有干净的解决这个,你必须降级你的机器再次参考源版本。 我不能做的事情,使用Windows 8.1。 而不应该这样做,我使用VS2013。 Redgate的reflection器是一个替代品。

我为此创build了一个UserVoice项目 ,它需要更多的投票。


更新:参考源现在更新到4.5.2(2015年3月)

JetBrains DotPeek(目前版本1.2)有一个非常好的function,它不仅可以生成pdbs,而且还可以通过内置的Symbol Server在本地提供这些pdbs,以便在debugging时为Visual Studio提供符号。 显然,源代码是反编译的代码,而不是实际的源代码,但是当正常的MS符号服务器没有给你所需的pdbs的时候,它可以是非常有用的。

关于符号服务器function的信息可以在他们的网站上find 。