
.NET Декомпилятор с поддержкой генерации PDB, ReadyToRun, метаданных (&многое другое) - кроссплатформенный!
# ILSpy [](https://nuget.org/packages/ICSharpCode.Decompiler)  [](https://hachyderm.io/@ilspy) [](https://bsky.app/profile/ilspy.bsky.social) [](https://visualstudiogallery.msdn.microsoft.com/8ef1d688-f80c-4380-8004-2ec7f814e7de)
ILSpy — это открытый кроссплатформенный браузер сборок .NET и декомпилятор. Настольный интерфейс работает на Windows, Linux и macOS (построен на [Avalonia](https://avaloniaui.net/)).
Скачать: [последний релиз](https://github.com/icsharpcode/ILSpy/releases) | [последняя сборка CI (master)](https://github.com/icsharpcode/ILSpy/actions?query=workflow%3A%22Build+ILSpy%22+branch%3Amaster+is%3Asuccess+event%3Apush) | [Microsoft Store (только версии RTM)](https://apps.microsoft.com/store/detail/ilspy-fresh/XP8C26VDWLP4T4)
Фронтенды декомпилятора
-------
Помимо кроссплатформенного настольного интерфейса ILSpy (доступен для скачивания в разделе Releases, см. также [плагины](https://github.com/icsharpcode/ILSpy/wiki/Plugins)), доступны следующие другие фронтенды:
* Visual Studio 2022/2026 поставляются с поддержкой декомпиляции по F12, включённой по умолчанию (используются наши движки v8.2 и v9.1 соответственно).
* Наше расширение для Visual Studio 2022/2026 [marketplace](https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy2022)
* Наше расширение для Visual Studio Code [репозиторий](https://github.com/icsharpcode/ilspy-vscode) | [marketplace](https://marketplace.visualstudio.com/items?itemName=icsharpcode.ilspy-vscode) | [open-vsx](https://open-vsx.org/extension/icsharpcode/ilspy-vscode)
* Наш инструмент dotnet для Linux/Mac/Windows — см. [ILSpyCmd](https://github.com/icsharpcode/ilspy/blob/master/ICSharpCode.ILSpyCmd) в этом репозитории | [dotnet tool install](https://www.nuget.org/packages/ilspycmd/)
* [C# for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) также поставляется с поддержкой декомпиляции. Чтобы включить её, активируйте настройку "Enable Decompilation Support".
* Наши NuGet-пакеты [ICSharpCode.Decompiler](https://www.nuget.org/packages/ICSharpCode.Decompiler/) и [ILSpyX](https://www.nuget.org/packages/ICSharpCode.ILSpyX/) для ваших собственных проектов
* Наши [командлеты PowerShell](https://github.com/icsharpcode/ilspy/blob/master/ICSharpCode.Decompiler.PowerShell) для Linux/Mac/Windows в этом репозитории
Возможности
-------
* Декомпиляция в C# (см. [статус поддержки языка](https://github.com/icsharpcode/ILSpy/issues/829))
* Декомпиляция всего проекта
* Открытие из канала NuGet, открытие из запущенного процесса в дополнение к диску и GAC (только Windows)
* Поиск типов/методов/свойств (узнайте о [параметрах](https://github.com/icsharpcode/ILSpy/wiki/Search-Options))
* Навигация по типам/методам/свойствам на основе гиперссылок, закладки
* Навигация по базовым/производным типам, история
* Обозреватель метаданных сборки ([обзор возможностей](https://github.com/icsharpcode/ILSpy/wiki/Metadata-Explorer))
* Декомпилятор BAML в XAML, поддержка !AvaloniaResources
* Поддержка бинарников ReadyToRun для .NET Core (см. [руководство](https://github.com/icsharpcode/ILSpy/wiki/ILSpy.ReadyToRun))
* Расширяемость через [плагины](https://github.com/icsharpcode/ILSpy/wiki/Plugins)
* Дополнительные возможности в сборках DEBUG ([для разработчиков](https://github.com/icsharpcode/ILSpy/wiki/Additional-Features-in-DEBUG-Builds))
Лицензия
-------
ILSpy распространяется под лицензией MIT. Подробности см. в документе [About](https://github.com/icsharpcode/ilspy/blob/master/doc/ILSpyAboutPage.txt),
а также в [уведомлениях третьих сторон](https://github.com/icsharpcode/ilspy/blob/master/doc/third-party-notices.txt) о включённых библиотеках с открытым исходным кодом.
Как собрать
------------
#### Windows:
- Убедитесь, что установлен [PowerShell](https://github.com/PowerShell/PowerShell) 7+ (Windows PowerShell версии не ниже 5.0 также подходит).
- Клонируйте репозиторий 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](https://dotnet.microsoft.com/download/dotnet/10.0) (ILSpy.csproj нацелен на .NET 10.0, но у нас есть и проекты net472). Наши модульные тесты требуют [.NET 11.0 SDK](https://dotnet.microsoft.com/download/dotnet/11.0).
- Рабочая нагрузка «Visual Studio extension development» (Примечание: ILSpy.VSExtensions.slnx отделён от ILSpy.slnx, поэтому эта рабочая нагрузка необязательна)
- Отдельный компонент «MSVC v143 - VS 2022 C++ x64/x86 build tools» (или аналогичный)
- _Набор инструментов VC++ необязателен_; если он присутствует, он используется для `editbin.exe`, чтобы изменить размер стека, используемого ILSpy.exe, с 1 МБ на 16 МБ, поскольку декомпилятор активно использует рекурсию, а малые размеры стека приводят к проблемам в очень сложных методах.
- Откройте ILSpy.slnx в 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 вручную [отсюда](https://dotnet.microsoft.com/download/dotnet/11.0).
#### Unix / Mac:
- Убедитесь, что установлены [.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0) (для запуска) и [.NET 11.0 SDK](https://dotnet.microsoft.com/download/dotnet/11.0) (для тестов). Ещё лучше использовать [dotnetup](https://github.com/dotnet/sdk/tree/release/dnup/documentation/general/dotnetup) с каналом SDK preview.
- Убедитесь, что установлен [PowerShell](https://github.com/PowerShell/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.
Мы рекомендуем [Visual Studio Code](https://code.visualstudio.com/) или его производные вместе с [DotRush](https://github.com/JaneySprings/DotRush), который также доступен для производных VS Code.
Как внести вклад
-----------------
- Сообщайте об ошибках
- Если вы хотите отправить pull request, пожалуйста, добавьте https://github.com/icsharpcode/ILSpy/blob/master/BuildTools/pre-commit в ваш `.git/hooks`, чтобы предотвратить коммит кода с неправильным форматированием. Мы используем табуляцию, а не пробелы. Сборочный сервер запускает тот же скрипт, поэтому любые pull request с неправильным форматированием завершатся ошибкой.
Текущие и прошлые [участники](https://github.com/icsharpcode/ILSpy/graphs/contributors).
Политика конфиденциальности ILSpy
------------------------
ILSpy не собирает никакой личной идентифицируемой информации и не отправляет пользовательские файлы сторонним сервисам.
ILSpy не использует никаких сервисов APM (Application Performance Management) для сбора телеметрии или метрик.