ILSpy es el navegador y descompilador de ensamblados .NET de código abierto y multiplataforma. La interfaz de escritorio se ejecuta en Windows, Linux y macOS (desarrollada con Avalonia).
Además de la interfaz de escritorio multiplataforma ILSpy (descargable a través de Releases, consulte también plugins), las siguientes otras interfaces están disponibles:
Visual Studio 2022/2026 incluye soporte de descompilación para F12 habilitado de forma predeterminada (usando nuestros motores v8.2 y v9.1 respectivamente).
Nuestra extensión para Visual Studio 2022 marketplace (también funciona con VS 2026)
C# para Visual Studio Code también incluye soporte de descompilación. Para habilitarlo, active la configuración "Enable Decompilation Support".
En Visual Studio 2019, debe habilitar manualmente el soporte de F12. Vaya a Tools / Options / Text Editor / C# / Advanced y marque "Enable navigation to decompiled source"
ILSpy se distribuye bajo la Licencia MIT. Consulte la documentación Acerca de para obtener más detalles,
así como los avisos de terceros para las bibliotecas de código abierto incluidas.
Cómo compilar
Windows:
Asegúrese de que Windows PowerShell (al menos la versión) 5.0 o PowerShell 7+ esté instalado.
Clone el repositorio de ILSpy usando git.
Ejecute git submodule update --init --recursive para descargar el submódulo ILSpy-Tests (usado por algunos casos de prueba).
Instale Visual Studio (versión documentada: 18.0/2026). Necesita los siguientes componentes de carga de trabajo:
Carga de trabajo ".NET Desktop Development". Esta carga de trabajo incluye el SDK de .NET Framework 4.8 y el paquete de destino de .NET Framework 4.7.2, así como el .NET 10.0 SDK (ILSpy.csproj tiene como destino .NET 10.0, pero también tenemos proyectos net472). Nuestras pruebas unitarias requieren el .NET 11.0 SDK.
Carga de trabajo "Visual Studio extension development" (Nota: ILSpy.VSExtensions.slnx es independiente de ILSpy.sln y, por lo tanto, esta carga de trabajo es opcional)
Componente individual "MSVC v143 - VS 2022 C++ x64/x86 build tools" (o similar)
El conjunto de herramientas VC++ es opcional; si está presente, se usa para editbin.exe con el fin de modificar el tamaño de pila usado por ILSpy.exe de 1MB a 16MB, porque el descompilador hace un uso intensivo de la recursión, donde los tamaños de pila pequeños provocan problemas en métodos muy complejos.
Abra ILSpy.sln en Visual Studio.
La restauración de paquetes NuGet descargará automáticamente más dependencias
Ejecute el proyecto "ILSpy" para la interfaz de usuario de ILSpy
Use el "Test Explorer" de Visual Studio para ver/ejecutar las pruebas
Si solo le interesa un subconjunto específico de ILSpy, también puede usar
ILSpy.Desktop.slnf: para la interfaz de usuario multiplataforma Avalonia y sus pruebas
ILSpy.XPlat.slnf: para la interfaz de línea de comandos multiplataforma (ilspycmd) o los cmdlets de PowerShell
ILSpy.VSExtensions.slnx: para las extensiones de Visual Studio
Nota: Visual Studio incluye una versión del SDK de .NET administrada por el instalador de Visual Studio; una vez que actualice, es posible que también se actualice.
Tenga en cuenta que ILSpy solo es compatible con el .NET 11.0 SDK y Visual Studio se negará a cargar algunos proyectos de la solución (y las pruebas unitarias fallarán).
Si se produce este problema, instale manualmente el .NET 11.0 SDK desde aquí.
Unix / Mac:
Asegúrese de que el .NET 10.0 SDK (para ejecutar) y el .NET 11.0 SDK (para las pruebas) estén instalados.
Asegúrese de que PowerShell esté instalado (anteriormente conocido como PowerShell Core)
Clone el repositorio usando git.
Ejecute git submodule update --init --recursive para descargar el submódulo ILSpy-Tests (usado por algunos casos de prueba).
Use dotnet build ILSpy.Desktop.slnf para compilar la interfaz de escritorio multiplataforma Avalonia; ejecútela con dotnet run --project ILSpy.
Use dotnet build ILSpy.XPlat.slnf para compilar solo la herramienta CLI (ilspycmd) y los cmdlets de PowerShell.
Cómo contribuir
Reporte errores
Si desea contribuir con una solicitud de extracción, agregue https://github.com/icsharpcode/ILSpy/blob/master/BuildTools/pre-commit a su .git/hooks para evitar confirmar código con formato incorrecto. Usamos tabuladores y no espacios. El servidor de compilación ejecuta el mismo script, por lo que cualquier solicitud de extracción con formato incorrecto fallará.
ILSpy no recopila ninguna información de identificación personal, ni envía archivos de usuario a servicios de terceros.
ILSpy no utiliza ningún servicio APM (Application Performance Management) para recopilar telemetría o métricas.