为了账号安全,请及时绑定邮箱和手机立即绑定

无法进入.NET Framework源代码

/ 猿问

无法进入.NET Framework源代码

达令说 2019-10-22 22:03:00

我正在使用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的代码?


查看完整描述

3 回答

?
宝慕林4294392

并有一个.NET 4.5.2项目


版本号是您的问题。参考源是一个普遍的问题,Microsoft没有对其进行足够及时的更新以提供新框架版本的源。还有更多麻烦,用于安全性和稳定性更新。从事此工作的人员都非常清楚这个问题,他们在演示文稿中将此问题视为一个问题,但它目前(并始终具有)//待办事项的状态。


您可以形象地看到它,首先从符号缓存(MicrosoftPublicSymbols中的那个)中删除System.pdb。然后开始调试测试程序,调试器将从服务器检索新的PDB。使用“调试”>“ Windows”>“模块”,右键单击“ 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服务器中获得一份副本,该副本是没有必要文件+行号调试信息的剥离的msdl服务器。


尚无明确的解决方法,您必须将计算机再次降级为参考源版本。使用Windows 8.1,我无法做的事情。而且不应该这样做,我使用VS2013。Redgate的Reflector是替代方案。


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


查看完整回答
反对 回复 2019-10-22
?
慕侠2389804

JetBrains DotPeek(当前为1.2版)具有一项非常出色的功能,它不仅使您可以生成pdb,而且还可以通过内置的Symbol Server在本地为这些pdb提供服务,以便在调试时向Visual Studio提供符号。显然,源代码是反编译的代码,而不是实际的源代码,但是对于那些正常的MS符号服务器无法提供所需的pdb的情况,它还是很有帮助的。

查看完整回答
反对 回复 2019-10-22
?
慕桂英546537

“仅针对RTM和Service Pack发布了用于逐步查看源代码的PDB。因此,当安全更新发布并修改了您要调试的dll时,这将导致源代码步进不起作用(也就是说,您将获得“无可用源代码”,并带有灰色的“浏览以查找源代码”)。”

查看完整回答
反对 回复 2019-10-22

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信