我在 Visual Studio (c#) 中有一个使用 .net 4.5 的项目,我到了需要调试框架源以了解多线程死锁中发生的情况的地步。
我找到了http://referencesource.microsoft.com/netframework.aspx,在那里你可以下载调试符号,我看到有一个 .net 4.5 更新 1。好的,所以我在 microsoft.com 上搜索更新,安装它,重新启动电脑,然后安装上述调试符号并配置 Visual Studio 以使用它们。
问题:当我调试我的项目并尝试加载符号(如 mscorlib)时,Visual Studio 说文件夹中没有匹配的符号。
我看到了这个:如何启用“启用 .NET Framework 源步进”?,其中据说要卸载 windows 更新,但我只安装了 KB2707250(VS2012 更新 1)、KB2504637(更改 System.Net 程序集)和 KB2750149(.net 4.5 更新 1)——没有其他更新.
因此,程序集报告的版本是 v4.0.30319.18033 和 v4.0.30319.17929,据我了解,它适用于 v4.5 和 v4.5 更新 1。
事实上,我从 referencesource.microsoft.com 下载了 .net 4.5 和 .net 4.5 update 1 的两个调试符号,考虑到我的系统上没有任何相关更新,它们应该对应于已安装的框架。
但显然它仅适用于 18 个引用程序集中的 5 个(不包括项目)。
我如何收集其他信息?
如何让 Visual Studio 和调试符号一起愉快地工作?
最后我可以看到源,这并不复杂,但我不知道字段和属性中有什么值......
更新:
我已经能够获得正确的 pdb ({3303BFEA-79E7-40C2-A2A8-34C1C816E082}),但它仍然缺少源,所以它没用。在这种情况下,Srctool 似乎也没有用。
现在有趣的是:我有源代码和 pdb,但它们似乎不能一起使用。不知道,如果可能的话,也许我会考虑重新编译 mscorlib。-> 不,显然答案是否定的。