ILSpy

ILSpy — это кроссплатформенный браузер сборок и декомпилятор .NET с открытым исходным кодом. Десктопный интерфейс работает на Windows, Linux и macOS (создан на Avalonia).
Загрузка: последний релиз | последняя CI-сборка (master) | Microsoft Store (только RTM-версии)
Фронтенды декомпилятора
Помимо кроссплатформенного десктопного интерфейса ILSpy (доступен через Releases, см. также плагины), доступны следующие другие фронтенды:
- Visual Studio 2022/2026 поставляются с поддержкой декомпиляции по F12, включённой по умолчанию (с использованием наших движков v8.2 и v9.1 соответственно).
- Наше расширение для Visual Studio 2022 — marketplace (работает также с VS 2026)
- Наше расширение для Visual Studio Code — репозиторий | marketplace | open-vsx
- Наш dotnet-инструмент для Linux/Mac/Windows — см. ILSpyCmd в этом репозитории | установка dotnet tool
- C# for Visual Studio Code также поставляется с поддержкой декомпиляции. Чтобы включить её, активируйте настройку "Enable Decompilation Support".
- В Visual Studio 2019 поддержку F12 нужно включать вручную. Перейдите в Tools / Options / Text Editor / C# / Advanced и отметьте "Enable navigation to decompiled source"
- Наши NuGet-пакеты ICSharpCode.Decompiler и ILSpyX для ваших собственных проектов
- Наши PowerShell-командлеты для Linux/Mac/Windows в этом репозитории
Возможности
- Декомпиляция в C# (см. статус поддержки языков)
- Декомпиляция всего проекта
- Открытие из NuGet-канала, открытие из запущенного процесса, а также с диска и из GAC (только Windows)
- Поиск типов/методов/свойств (узнайте о параметрах поиска)
- Навигация по типам/методам/свойствам на основе гиперссылок, закладки
- Навигация по базовым/производным типам, история
- Обозреватель метаданных сборок (обзор возможностей)
- Декомпилятор BAML в XAML, поддержка !AvaloniaResources
- Поддержка ReadyToRun-бинарей для .NET Core (см. руководство)
- Расширяемость с помощью плагинов
- Дополнительные возможности в DEBUG-сборках (для разработчиков)
Лицензия
ILSpy распространяется под лицензией MIT. Подробности см. в документе About, а также в уведомлениях третьих сторон о включённых библиотеках с открытым исходным кодом.
Как собрать
Windows:
- Убедитесь, что установлены Windows PowerShell (как минимум версии) 5.0 или PowerShell 7+.
- Клонируйте репозиторий ILSpy с помощью git.
- Выполните
git submodule update --init --recursive, чтобы загрузить подмодуль ILSpy-Tests (используется в некоторых тестах).
- Установите Visual Studio (документированная версия: 18.0/2026). Вам понадобятся следующие компоненты рабочей нагрузки:
- Рабочая нагрузка ".NET Desktop Development". Она включает .NET Framework 4.8 SDK и targeting pack для .NET Framework 4.7.2, а также .NET 10.0 SDK (ILSpy.csproj нацелен на .NET 10.0, но у нас есть и проекты net472). Наши модульные тесты требуют .NET 11.0 SDK.
- Рабочая нагрузка "Visual Studio extension development" (Примечание: ILSpy.VSExtensions.slnx отделён от ILSpy.sln, поэтому эта рабочая нагрузка необязательна)
- Отдельный компонент "MSVC v143 - VS 2022 C++ x64/x86 build tools" (или аналогичный)
- Набор инструментов VC++ необязателен; если он присутствует, он используется для запуска
editbin.exe с целью изменения размера стека ILSpy.exe с 1MB до 16MB, поскольку декомпилятор активно использует рекурсию, а при маленьком размере стека возникают проблемы в очень сложных методах.
- Откройте ILSpy.sln в Visual Studio.
- Восстановление NuGet-пакетов автоматически загрузит дополнительные зависимости
- Запустите проект "ILSpy" для интерфейса ILSpy
- Используйте "Test Explorer" в Visual Studio для просмотра/запуска тестов
- Если вас интересует только конкретный поднабор ILSpy, вы также можете использовать
- ILSpy.Desktop.slnf: для кроссплатформенного интерфейса Avalonia и его тестов
- ILSpy.XPlat.slnf: для кроссплатформенного CLI (ilspycmd) или PowerShell-командлетов
- ILSpy.VSExtensions.slnx: для расширений Visual Studio
Примечание: Visual Studio включает версию .NET SDK, управляемую установщиком Visual Studio — после обновления она тоже может быть обновлена.
Обратите внимание, что 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; запустите его с помощью dotnet run --project ILSpy.
- Используйте
dotnet build ILSpy.XPlat.slnf для сборки только CLI-инструмента (ilspycmd) и PowerShell-командлетов.
Как внести вклад
- Сообщайте об ошибках
- Если вы хотите отправить pull request, добавьте https://github.com/icsharpcode/ILSpy/blob/master/BuildTools/pre-commit в свой
.git/hooks, чтобы предотвратить коммиты кода с неправильным форматированием. Мы используем табуляцию, а не пробелы. Сборочный сервер запускает тот же скрипт, поэтому любые pull request с неправильным форматированием будут отклонены.
Текущие и прошлые участники.
Политика конфиденциальности ILSpy
ILSpy не собирает никакой личной информации и не отправляет пользовательские файлы сторонним сервисам.
ILSpy не использует никакие сервисы APM (Application Performance Management) для сбора телеметрии или метрик.