ILSpy

ILSpy は、オープンソースでクロスプラットフォーム対応の .NET アセンブリブラウザ兼逆コンパイラです。デスクトップ UI は Windows、Linux、macOS で動作します(Avalonia 上に構築)。
ダウンロード: 最新リリース | 最新の CI ビルド (master) | Microsoft Store (RTM バージョンのみ)
逆コンパイラフロントエンド
クロスプラットフォームのデスクトップ UI である ILSpy(Releases からダウンロード可能。プラグイン も参照)に加えて、以下のフロントエンドも利用できます:
- Visual Studio 2022/2026 には、F12 用の逆コンパイルサポートがデフォルトで有効になった状態で同梱されています(それぞれ当プロジェクトのエンジン v8.2 と v9.1 を使用)。
- 当プロジェクトの Visual Studio 2022 拡張機能 マーケットプレイス(VS 2026 でも動作します)
- 当プロジェクトの Visual Studio Code 拡張機能 リポジトリ | マーケットプレイス | open-vsx
- Linux/Mac/Windows 向け当プロジェクトの dotnet ツール - このリポジトリの ILSpyCmd をご覧ください | dotnet tool のインストール
- C# for Visual Studio Code にも逆コンパイルサポートが同梱されています。有効にするには、設定「逆コンパイルサポートを有効にする」をオンにしてください。
- Visual Studio 2019 では、F12 サポートを手動で有効にする必要があります。[ツール] / [オプション] / [テキスト エディター] / [C#] / [詳細] に移動し、「逆コンパイルされたソースへのナビゲーションを有効にする」にチェックを入れます。
- 独自プロジェクト向けの当プロジェクト ICSharpCode.Decompiler および ILSpyX NuGet パッケージ
- このリポジトリにある Linux/Mac/Windows 向け当プロジェクト PowerShell コマンドレット
機能
- C# への逆コンパイル(言語サポート状況 を参照)
- プロジェクト全体の逆コンパイル
- ディスクと GAC に加えて、NuGet フィードまたは実行中のプロセスから開く(Windows のみ)
- 型/メソッド/プロパティの検索(オプション について学ぶ)
- ハイパーリンクベースの型/メソッド/プロパティナビゲーション、ブックマーク
- 基本型/派生型のナビゲーション、履歴
- アセンブリメタデータエクスプローラー(機能ウォークスルー)
- BAML から XAML への逆コンパイラ、!AvaloniaResources サポート
- .NET Core の ReadyToRun バイナリサポート(チュートリアル を参照)
- プラグイン による拡張が可能
- DEBUG ビルドの追加機能(開発者向け)
ライセンス
ILSpy は MIT License の下で配布されています。詳細については About ドキュメントと、同梱のオープンソースライブラリに関する third party notices をご覧ください。
ビルド方法
Windows:
- Windows PowerShell(最低バージョン)5.0 または PowerShell 7+ がインストールされていることを確認してください。
- 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.sln とは別のソリューションであるため、このワークロードはオプションです)
- 個別コンポーネント「MSVC v143 - VS 2022 C++ x64/x86 ビルドツール」(または類似のもの)
- VC++ ツールセットはオプションです; インストールされている場合、
editbin.exe を使用して ILSpy.exe が使用するスタックサイズを 1MB から 16MB に変更するために使用されます。これは、逆コンパイラが再帰を多用するためで、スタックサイズが小さいと非常に複雑なメソッドで問題が発生するからです。
- Visual Studio で ILSpy.sln を開きます。
- NuGet パッケージの復元により、追加の依存関係が自動的にダウンロードされます
- ILSpy の UI を実行するには、プロジェクト「ILSpy」を実行します
- テストを表示/実行するには、Visual Studio の「テスト エクスプローラー」を使用します
- ILSpy の特定のサブセットのみに関心がある場合は、以下も使用できます
- ILSpy.Desktop.slnf: クロスプラットフォームの Avalonia UI とそのテスト用
- ILSpy.XPlat.slnf: クロスプラットフォームの CLI (ilspycmd) または PowerShell コマンドレット用
- 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(テスト用)がインストールされていることを確認してください。
- 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 コマンドレットのみをビルドします。
コントリビューション方法
現在および過去のコントリビューター。
ILSpy のプライバシーポリシー
ILSpy は個人を特定できる情報を一切収集せず、ユーザーファイルを第三者サービスに送信することもありません。
ILSpy は、テレメトリやメトリクスを収集するための APM(アプリケーションパフォーマンス管理)サービスを一切使用していません。