ILSpy è il browser e decompilatore di assembly .NET open source e multipiattaforma. L'interfaccia desktop gira su Windows, Linux e macOS (basata su Avalonia).
Oltre all'interfaccia desktop multipiattaforma ILSpy (scaricabile tramite Releases, vedi anche i plugin), sono disponibili i seguenti altri frontend:
Visual Studio 2022/2026 supporta la decompilazione con F12 abilitata per impostazione predefinita (usando rispettivamente i nostri motori v8.2 e v9.1).
La nostra estensione per Visual Studio 2022 marketplace (funziona anche con VS 2026)
C# for Visual Studio Code include anche il supporto alla decompilazione. Per abilitarlo, attiva l'impostazione "Enable Decompilation Support".
In Visual Studio 2019, devi abilitare manualmente il supporto F12. Vai su Tools / Options / Text Editor / C# / Advanced e spunta "Enable navigation to decompiled source"
ILSpy è distribuito sotto la licenza MIT. Per i dettagli, consulta il documento About,
nonché gli avvisi di terze parti per le librerie open-source incluse.
How to build
Windows:
Assicurati che sia installato Windows PowerShell (almeno versione) 5.0 o PowerShell 7+.
Clona il repository ILSpy usando git.
Esegui git submodule update --init --recursive per scaricare il sottomodulo ILSpy-Tests (usato da alcuni casi di test).
Installa Visual Studio (versione documentata: 18.0/2026). Sono necessari i seguenti componenti del carico di lavoro:
Carico di lavoro ".NET Desktop Development". Questo carico di lavoro include .NET Framework 4.8 SDK e il targeting pack di .NET Framework 4.7.2, oltre al .NET 10.0 SDK (ILSpy.csproj ha come target .NET 10.0, ma abbiamo anche progetti net472). I nostri test unitari richiedono .NET 11.0 SDK.
Carico di lavoro "Visual Studio extension development" (Nota: ILSpy.VSExtensions.slnx è separato da ILSpy.sln, quindi questo carico di lavoro è opzionale)
Componente individuale "MSVC v143 - VS 2022 C++ x64/x86 build tools" (o simile)
Il toolset VC++ è opzionale; se presente, viene usato per editbin.exe per modificare la dimensione dello stack usata da ILSpy.exe da 1MB a 16MB, poiché il decompilatore fa ampio uso di ricorsione, dove dimensioni ridotte dello stack causano problemi in metodi molto complessi.
Apri ILSpy.sln in Visual Studio.
Il ripristino dei pacchetti NuGet scaricherà automaticamente le dipendenze aggiuntive
Esegui il progetto "ILSpy" per l'interfaccia utente di ILSpy
Usa "Test Explorer" di Visual Studio per vedere/eseguire i test
Se sei interessato solo a un sottoinsieme specifico di ILSpy, puoi anche usare
ILSpy.Desktop.slnf: per l'interfaccia utente Avalonia multipiattaforma e i relativi test
ILSpy.XPlat.slnf: per la CLI multipiattaforma (ilspycmd) o i cmdlet PowerShell
ILSpy.VSExtensions.slnx: per le estensioni di Visual Studio
Nota: Visual Studio include una versione di .NET SDK gestita dal programma di installazione di Visual Studio: una volta aggiornato, potrebbe venire aggiornata anche questa.
Tieni presente che ILSpy è compatibile solo con .NET 11.0 SDK e Visual Studio rifiuterà di caricare alcuni progetti nella soluzione (e i test unitari falliranno).
Se si verifica questo problema, installa manualmente .NET 11.0 SDK da qui.
Assicurati che sia installato PowerShell (precedentemente noto come PowerShell Core)
Clona il repository usando git.
Esegui git submodule update --init --recursive per scaricare il sottomodulo ILSpy-Tests (usato da alcuni casi di test).
Usa dotnet build ILSpy.Desktop.slnf per compilare l'interfaccia desktop Avalonia multipiattaforma; eseguila con dotnet run --project ILSpy.
Usa dotnet build ILSpy.XPlat.slnf per compilare solo lo strumento CLI (ilspycmd) e i cmdlet PowerShell.
How to contribute
Segnala bug
Se vuoi contribuire con una pull request, aggiungi https://github.com/icsharpcode/ILSpy/blob/master/BuildTools/pre-commit ai tuoi .git/hooks per evitare di committare codice con formattazione errata. Usiamo tab e non spazi. Il server di build esegue lo stesso script, quindi qualsiasi pull request con formattazione errata fallirà.
ILSpy non raccoglie alcuna informazione personale identificabile, né invia file degli utenti a servizi di terze parti.
ILSpy non utilizza alcun servizio APM (Application Performance Management) per raccogliere telemetria o metriche.