ILSpy

ILSpy 是一个开源、跨平台的 .NET 程序集浏览器和反编译器。桌面 UI 可在 Windows、Linux 和 macOS 上运行(基于 Avalonia 构建)。
下载:最新版本 | 最新 CI 构建(master) | Microsoft Store(仅 RTM 版本)
反编译器前端
除了跨平台桌面 UI ILSpy(可通过 Releases 下载,另请参阅插件)之外,还提供以下其他前端:
功能
- 反编译为 C#(请查看语言支持状态)
- 全项目反编译
- 从 NuGet 源打开、从运行中的进程打开,以及从磁盘和 GAC 打开(仅限 Windows)
- 搜索类型/方法/属性(了解选项)
- 基于超链接的类型/方法/属性导航、书签
- 基类/派生类型导航、历史记录
- 程序集元数据浏览器(功能演示)
- BAML 到 XAML 反编译器,!AvaloniaResources 支持
- 对 .NET Core 的 ReadyToRun 二进制支持(参见教程)
- 可通过插件扩展
- DEBUG 构建中的附加功能(供开发者使用)
许可证
ILSpy 在 MIT 许可证下分发。详情请参阅 About 文档,
以及包含的开源库的第三方声明。
如何构建
Windows:
- 确保已安装 PowerShell 7+(Windows PowerShell 至少 5.0 版本也可以)
- 使用 git 克隆 ILSpy 仓库。
- 执行
git submodule update --init --recursive 以下载 ILSpy-Tests 子模块(部分测试用例会用到)。
- 安装 Visual Studio(文档记录的版本:18.0/2026)。你需要以下工作负载组件:
- 工作负载“.NET 桌面开发”。此工作负载包含 .NET Framework 4.8 SDK 和 .NET Framework 4.7.2 目标包,以及 .NET 10.0 SDK(ILSpy.csproj 目标为 .NET 10.0,但我们也有 net472 项目)。我们的单元测试需要 .NET 11.0 SDK。
- 工作负载“Visual Studio 扩展开发”(注意:ILSpy.VSExtensions.slnx 与 ILSpy.slnx 是分开的,因此此工作负载是可选的)
- 单个组件“MSVC v143 - VS 2022 C++ x64/x86 生成工具”(或类似组件)
- VC++ 工具集是可选的;如果存在,它会用于
editbin.exe,将 ILSpy.exe 使用的堆栈大小从 1MB 修改为 16MB,因为反编译器大量使用递归,较小的堆栈大小会在非常复杂的方法中导致问题。
- 在 Visual Studio 中打开 ILSpy.slnx。
- NuGet 包还原会自动下载其他依赖项
- 运行项目“ILSpy”以启动 ILSpy UI
- 使用 Visual Studio 的“测试资源管理器”查看/运行测试
- 如果你只对 ILSpy 的特定子集感兴趣,也可以使用
- ILSpy.Desktop.slnf:用于跨平台 Avalonia UI 及其测试
- ILSpy.XPlat.slnf:用于跨平台 CLI(ilspycmd)或 PowerShell cmdlet
- ILSpy.VSExtensions.slnx:用于 Visual Studio 扩展
注意: Visual Studio 包含一个由 Visual Studio 安装程序管理的 .NET SDK 版本——一旦你更新,它也可能被升级。
请注意,ILSpy 仅与 .NET 11.0 SDK 兼容,Visual Studio 将拒绝加载解决方案中的某些项目(并且单元测试将失败)。
如果出现此问题,请从此处手动安装 .NET 11.0 SDK。
Unix / Mac:
- 确保已安装 .NET 10.0 SDK(用于运行)和 .NET 11.0 SDK(用于测试)。更好的是,使用 dotnetup 并选择 SDK 预览通道。
- 确保已安装 PowerShell(以前称为 PowerShell Core)
- 使用 git 克隆仓库。
- 执行
git submodule update --init --recursive 以下载 ILSpy-Tests 子模块(部分测试用例会用到)。
- 使用
dotnet build ILSpy.Desktop.slnf 构建跨平台 Avalonia 桌面 UI;使用 dotnet run --project ILSpy 运行它。
- 使用
dotnet build ILSpy.XPlat.slnf 仅构建 CLI 工具(ilspycmd)和 PowerShell cmdlet。
我们推荐使用 Visual Studio Code 或其衍生版本,并配合 DotRush,后者也适用于 VS Code 的衍生版本。
如何贡献
当前和过去的贡献者。
ILSpy 隐私政策
ILSpy 不收集任何个人身份信息,也不会将用户文件发送到第三方服务。
ILSpy 不使用任何 APM(应用性能管理)服务来收集遥测数据或指标。