在 Rider 中反编译 ASP.NET 核心 3.x 源代码
Decompile ASP.NET Core 3.x sources in Rider
我在 Ubuntu 18.10 上使用 Rider 2019.2.3,并安装了版本 3.1.100 的 .NET SDK。
当我尝试导航到反编译的源代码时,有时我只看到方法的声明而没有它们的实现,例如:
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 代码,看起来这个程序集只包含方法的存根,没有它们的实现。
所以我有几个问题:
- ASP.NET 核心库的实际程序集在我的计算机上的位置是什么?
- 如何强制 Rider 反编译实际程序集?
我的 .csproj
指定了 Microsoft.NET.Sdk.Web
SDK,所以我想也许我应该安装一些用于 Web 开发的特殊 SDK,但我找不到任何相关信息。
实现程序集的基本路径是:
C:\Program Files\dotnet\shared\
我创建了一个简单的 ASP.NET 核心应用程序并添加了您的 IdentityBuilder AddIdentity<TUser, TRole>
功能。反编译时也无法自动解析。
您案例的实际装配路径是:
C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App.1.0\Microsoft.AspNetCore.Identity.dll
在 Ubuntu 上应该是:
/usr/share/dotnet/shared/Microsoft.AspNetCore.App/3.1.0/Microsoft.AspNetCore.Identity.dll
一旦我手动将此文件添加到反编译器,我就可以单步执行源代码
如果路径不存在,您可能必须为 Ubuntu.
安装 AspNetCore SDK
在 JetBrains Rider 2019.3 中修复了在 .NET Core 3.0 中导航到反编译方法体的问题。请将您的版本更新到最新的可用版本。
我在 Ubuntu 18.10 上使用 Rider 2019.2.3,并安装了版本 3.1.100 的 .NET SDK。
当我尝试导航到反编译的源代码时,有时我只看到方法的声明而没有它们的实现,例如:
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 代码,看起来这个程序集只包含方法的存根,没有它们的实现。
所以我有几个问题:
- ASP.NET 核心库的实际程序集在我的计算机上的位置是什么?
- 如何强制 Rider 反编译实际程序集?
我的 .csproj
指定了 Microsoft.NET.Sdk.Web
SDK,所以我想也许我应该安装一些用于 Web 开发的特殊 SDK,但我找不到任何相关信息。
实现程序集的基本路径是:
C:\Program Files\dotnet\shared\
我创建了一个简单的 ASP.NET 核心应用程序并添加了您的 IdentityBuilder AddIdentity<TUser, TRole>
功能。反编译时也无法自动解析。
您案例的实际装配路径是:
C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App.1.0\Microsoft.AspNetCore.Identity.dll
在 Ubuntu 上应该是:
/usr/share/dotnet/shared/Microsoft.AspNetCore.App/3.1.0/Microsoft.AspNetCore.Identity.dll
一旦我手动将此文件添加到反编译器,我就可以单步执行源代码
如果路径不存在,您可能必须为 Ubuntu.
安装 AspNetCore SDK在 JetBrains Rider 2019.3 中修复了在 .NET Core 3.0 中导航到反编译方法体的问题。请将您的版本更新到最新的可用版本。