在 Rider 中反编译 ASP.NET Core 3.x 源代码



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

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

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

莱德从组装/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.WebSDK,所以我想也许我应该安装一些特殊的SDK进行Web开发,但我找不到任何有关此的信息。

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

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

C:\Program Files\dotnet\shared\

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

案例的实际装配路径为:

C:Program FilesdotnetsharedMicrosoft.AspNetCore.App3.1.0Microsoft.AspNetCore.Identity.dll

在 Ubuntu 上,它应该是:

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

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

如果路径不存在,您可能需要安装 AspNetCore SDK for Ubuntu。

最新更新