O ILSpy é o navegador e decompilador de assemblies .NET de código aberto e multiplataforma. A interface de desktop roda em Windows, Linux e macOS (construída com Avalonia).
Além da interface de desktop multiplataforma ILSpy (disponível para download nas Releases, veja também plugins), os seguintes outros frontends estão disponíveis:
Visual Studio 2022/2026 incluem suporte a descompilação para F12 ativado por padrão (usando nossos mecanismos v8.2 e v9.1, respectivamente).
Nossa extensão para Visual Studio 2022 marketplace (também funciona com VS 2026)
C# para Visual Studio Code também inclui suporte a descompilação. Para ativar, habilite a configuração "Enable Decompilation Support".
No Visual Studio 2019, você precisa habilitar manualmente o suporte a F12. Vá em Tools / Options / Text Editor / C# / Advanced e marque "Enable navigation to decompiled source"
O ILSpy é distribuído sob a Licença MIT. Consulte o documento About para detalhes,
bem como os avisos de terceiros referentes às bibliotecas de código aberto incluídas.
Como compilar
Windows:
Certifique-se de que o Windows PowerShell (pelo menos a versão) 5.0 ou o PowerShell 7+ esteja instalado.
Clone o repositório do ILSpy usando o git.
Execute git submodule update --init --recursive para baixar o submódulo ILSpy-Tests (usado por alguns casos de teste).
Instale o Visual Studio (versão documentada: 18.0/2026). Você precisa dos seguintes componentes de workload:
A workload ".NET Desktop Development". Essa workload inclui o SDK do .NET Framework 4.8 e o pacote de direcionamento do .NET Framework 4.7.2, bem como o .NET 10.0 SDK (o ILSpy.csproj tem como alvo o .NET 10.0, mas também temos projetos net472). Nossos testes de unidade exigem o .NET 11.0 SDK.
A workload "Visual Studio extension development" (Observação: o ILSpy.VSExtensions.slnx é separado do ILSpy.sln e, portanto, essa workload é opcional)
O Componente Individual "MSVC v143 - VS 2022 C++ x64/x86 build tools" (ou similar)
O conjunto de ferramentas VC++ é opcional; se estiver presente, ele é usado para o editbin.exe modificar o tamanho da pilha usado pelo ILSpy.exe de 1MB para 16MB, porque o decompilador faz uso intenso de recursão, onde tamanhos pequenos de pilha causam problemas em métodos muito complexos.
Abra o ILSpy.sln no Visual Studio.
A restauração de pacotes NuGet baixará automaticamente outras dependências
Execute o projeto "ILSpy" para a interface do ILSpy
Use o "Test Explorer" do Visual Studio para ver/executar os testes
Se você tiver interesse apenas em um subconjunto específico do ILSpy, também pode usar
ILSpy.Desktop.slnf: para a interface Avalonia multiplataforma e seus testes
ILSpy.XPlat.slnf: para a CLI multiplataforma (ilspycmd) ou cmdlets do PowerShell
ILSpy.VSExtensions.slnx: para as extensões do Visual Studio
Observação: o Visual Studio inclui uma versão do SDK do .NET gerenciada pelo instalador do Visual Studio - depois que você atualizar, ela também poderá ser atualizada.
Observe que o ILSpy é compatível apenas com o SDK do .NET 11.0 e o Visual Studio se recusará a carregar alguns projetos da solução (e os testes de unidade falharão).
Se esse problema ocorrer, instale manualmente o SDK do .NET 11.0 aqui.
Unix / Mac:
Certifique-se de que o .NET 10.0 SDK (para execução) e o .NET 11.0 SDK (para testes) estejam instalados.
Certifique-se de que o PowerShell esteja instalado (anteriormente conhecido como PowerShell Core)
Clone o repositório usando o git.
Execute git submodule update --init --recursive para baixar o submódulo ILSpy-Tests (usado por alguns casos de teste).
Use dotnet build ILSpy.Desktop.slnf para compilar a interface de desktop Avalonia multiplataforma; execute-a com dotnet run --project ILSpy.
Use dotnet build ILSpy.XPlat.slnf para compilar apenas a ferramenta de CLI (ilspycmd) e os cmdlets do PowerShell.
Como contribuir
Reporte bugs
Se quiser contribuir com um pull request, adicione https://github.com/icsharpcode/ILSpy/blob/master/BuildTools/pre-commit ao seu .git/hooks para evitar enviar código com formatação incorreta. Usamos tabs e não espaços. O servidor de build executa o mesmo script, portanto qualquer pull request com formatação incorreta falhará.
O ILSpy não coleta nenhuma informação pessoalmente identificável, nem envia arquivos do usuário para serviços de terceiros.
O ILSpy não usa nenhum serviço de APM (Application Performance Management) para coletar telemetria ou métricas.