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 targeting pack、および .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 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(テスト用)がインストールされていることを確認してください。さらに良いのは、SDK チャネル preview で dotnetup を使用することです。
- 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 コマンドレットのみをビルドします。
Visual Studio Code またはその派生版と、VS Code の派生版でも利用可能な DotRush を併用することを推奨します。
貢献方法
現在および過去の貢献者。
ILSpy のプライバシーポリシー
ILSpy は個人を特定できる情報を収集せず、ユーザーファイルを第三者サービスに送信することもありません。
ILSpy はテレメトリやメトリクスを収集するための APM(アプリケーションパフォーマンス管理)サービスを一切使用していません。