我在 Visual Studio 2013 上使用 ReSharper 9.1.1。在某些类上,例如System.Data.SqlClient.SqlParameter
当我右键单击单词SqlParameter
并单击
转到定义
它引导我到一些反编译的 cs 文件
C:\Users\X\AppData\Local\JetBrains\Shared\v02\DecompilerCache\decompiler\D514DFA3-5BC8-4AE6-ABD0-D615A7C2893F\3c\1ec3bc9a\SqlParameter.cs
在文件的顶部它说:
// 使用 JetBrains 反编译器进行反编译
// 类型:System.Data.SqlClient.SqlParameter
// 程序集:System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// MVID: D514DFA3-5BC8-4AE6-ABD0- D615A7C2893F
// 组装位置:C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Data.dll
但是在其他一些类上,例如System.DateTime
当我右键单击 DataTime 并单击 Go to Definition 时,它会将我定向到此文件:
C:\Users\X\AppData\Local\Temp\SymbolCache\src\Source\51209.34209\Source\ndp\clr\src\BCL\System\DateTime.cs
这个文件,它说;
//------------------------------------------------ ------------------
// 版权所有 file="MessageBox.cs" company="Microsoft"
// 版权所有 (c ) 微软公司。版权所有。
// /版权
//-------------------------------------------- ---------------------------------
所以这个来自微软的参考源网站,另一个是用 ReSharper 反编译的。
为什么有些源代码是反编译的,有些是从Miscooft Reference Source 下载的?我希望所有来源都来自 Microsoft 参考源网站,而不是从 .NET 文件反编译。
它们在实践中是相同的,但在细节上有所不同。(评论等)
- 在 ReSharper Options 中,我检查过;工具 > 外部源 > 导航到源 > 允许从远程位置下载
- 在 VS 2013 Options 中,我检查过;调试 > 启用 .NET Framework 源单步执行,
- 在 VS 2013 Options 中,我检查过;调试 > 启用源服务器支持,
- 在 VS 2013 Options 中,我没有选中;调试 > 仅启用我的代码,
- 我已经清除了 ReSharper 缓存,
- 删除了 DecompilerCache 文件夹 C:\Users\X\AppData\Local\JetBrains\Shared\v02\DecompilerCache
- 我已经安装了 dotPeek 1.4,试过了,
- 已卸载 dotPeek,
- 卸载 ReSharper,删除 C:\Users\X\AppData\Local\JetBrains\ 文件夹并再次重新安装 ReSharper,
- 我已经用 Visual Studio 清除了解决方案;构建 > 清洁解决方案
我应该如何仅查看来自http://referencesource.microsoft.com/的来源?
我们是否有任何选项可以清除 ReSharper 的反编译缓存并禁用反编译功能,直到我启用它?
编辑:我正在使用 .NET Framework 4.5.1 库。
更新:从 Resharper 9.2 和 Visual Studio 2015 和 .NET Framework 4.6 开始;对我来说什么都没有改变。问题仍然存在,并且也发生在其他一些班级上。我们能做些什么,比如使用我喜欢的文件来抑制缓存的 .cs 文件?