ReSharper无法反编译.NET Standard程序集。

6
我刚刚在VisualStudio 2015中将项目类型更改为便携式。但是似乎ReSharper不能再反编译标准的.NET库了。
它只显示带有默认返回值的空体: enter image description here 我知道不同平台上.NET标准的确切实现可能不同。但仍然很有用,至少可以查看Windows版本的标准库,而无需明确访问参考源站点或使用DotPeek或类似工具。
如果项目类型是便携式的话,我能否以某种方式配置ReSharper来反编译其中一个实际实现(例如Windows版本)?

我不是法律专家,但是ReSharper的许可协议是否允许您发布反编译其汇编代码的副本? - user585968
@MickyD:我只是在谈论官方的微软资源,顺便提一下这些资源可以在referencesource.microsoft.com上找到。其他第三方的反编译仍然可以正常工作。所以我的问题只是一个便利性问题。 - György Kőszeg
如果你看一下位于 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile111 目录下的文件大小,那么它们包含“真实”的代码的可能性非常小... mscorlib.dll 只有38kb! - xanatos
@xanatos:是的,这就是为什么我问“我是否可以以某种方式配置ReSharper来反编译实际实现之一 - György Kőszeg
@MickyD:这是一个备用机制。它首先尝试下载源代码。如果失败,则继续反编译。如果项目类型是普通的.NET Framework之一,则通常可以成功下载。 - György Kőszeg
你使用的ReSharper版本是哪个?你能试试刚刚发布的ReSharper 2017.1吗?它应该可以解决参考程序集到实际实现程序集的引用问题。 - citizenmatt
1个回答

0

请注意文件路径。

这些文件夹中的参考程序集仅用于参考目的,这就是为什么即使反编译器也只能显示API表面的原因。

您可以阅读Roslyn线程以获取技术细节,

https://github.com/dotnet/roslyn/issues/2184


4
我知道它们只是“占位符”程序集。这就是为什么我问:“如果项目类型是Portable,我能否以某种方式配置ReSharper来反编译其中一个实际实现(例如Windows版本)?” - György Kőszeg
@taffer,如何将参考程序集映射到运行时程序集比你想象的要复杂得多,我认为JetBrains还没有实现这个功能。 - Lex Li

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接