代码之家  ›  专栏  ›  技术社区  ›  Nikita Sivukhin

解压缩ASP。Rider中的.NET Core 3.x源代码

  •  1
  • Nikita Sivukhin  · 技术社区  · 5 年前

    我在已安装的Ubuntu 18.10上使用Rider 2019.2.3。NET SDK 3.1.100版本。

    当我尝试导航到反编译的源代码时,我有时只看到方法的声明,而没有它们的实现,例如:

    public static class IdentityServiceCollectionExtensions
    {
        public static IdentityBuilder AddIdentity<TUser, TRole>(
          this IServiceCollection services)
          where TUser : class
          where TRole : class;
        ...
    }
    

    Rider从集会中获得了这个消息来源 /usr/share/dotnet/packs/Microsoft.AspNetCore.App.Ref/3.1.0/ref/netcoreapp3.1/Microsoft.AspNetCore.Identity.dll 我检查了它的IL代码,看起来这个程序集只包含没有实现的方法的存根。

    所以我有几个问题:

    1. ASP的实际程序集的位置是什么。NET Core库在我的计算机上?
    2. 我如何强制Rider反编译实际的程序集?

    我的 .csproj Microsoft.NET.Sdk.Web 指定了SDK,所以我想也许我应该安装一些用于web开发的特殊SDK,但我找不到任何相关信息。

    0 回复  |  直到 5 年前
        1
  •  1
  •   Mikhail Filippov    5 年前

    导航到中的反编译方法体。NET Core 3.0在JetBrains Rider 2019.3中修复。请将您的版本更新到最新可用版本。

        2
  •  1
  •   Charles    5 年前

    实现程序集的基本路径是:

    C: \程序文件\dnet\共享\

    我创建了一个简单的ASP。NET Core应用程序并添加了您的 IdentityBuilder AddIdentity<TUser, TRole> 功能。当反编译时,它也无法自动解析。

    您案例的实际装配路径是:

    C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\3.1.0\Microsoft.AspNetCore.Identity.dll

    在Ubuntu上应该是:

    /usr/share/dotnet/shared/Microsoft.AspNetCore.App/3.1.0/Microsoft.AspNetCore.Identity.dll

    一旦我手动将此文件添加到反编译器中,我就可以逐步浏览源代码

    如果路径不存在,您可能需要安装适用于Ubuntu的AspNetCore SDK。

    推荐文章