
Décompilateur .NET avec prise en charge de la génération PDB, ReadyToRun, Metadata (&plus) - multiplateforme !
# 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 est le navigateur d'assemblys et décompilateur .NET open source et multiplateforme. L'interface de bureau fonctionne sous Windows, Linux et macOS (construite sur [Avalonia](https://avaloniaui.net/)).
Téléchargement : [dernière version](https://github.com/icsharpcode/ILSpy/releases) | [dernière build CI (master)](https://github.com/icsharpcode/ILSpy/actions?query=workflow%3A%22Build+ILSpy%22+branch%3Amaster+is%3Asuccess+event%3Apush) | [Microsoft Store (versions RTM uniquement)](https://apps.microsoft.com/store/detail/ilspy-fresh/XP8C26VDWLP4T4)
Interfaces du décompilateur
-------
Outre l'interface de bureau multiplateforme ILSpy (téléchargeable via les Releases, voir aussi les [plugins](https://github.com/icsharpcode/ILSpy/wiki/Plugins)), les autres interfaces suivantes sont disponibles :
* Visual Studio 2022/2026 sont livrés avec la prise en charge de la décompilation pour F12 activée par défaut (utilisant respectivement nos moteurs v8.2 et v9.1).
* Notre extension Visual Studio 2022/2026 [marketplace](https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy2022)
* Notre extension Visual Studio Code [dépôt](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)
* Notre outil dotnet pour Linux/Mac/Windows - consultez [ILSpyCmd](https://github.com/icsharpcode/ilspy/blob/master/ICSharpCode.ILSpyCmd) dans ce dépôt | [dotnet tool install](https://www.nuget.org/packages/ilspycmd/)
* [C# for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) est également livré avec la prise en charge de la décompilation. Pour l'activer, activez le paramètre « Enable Decompilation Support ».
* Nos packages NuGet [ICSharpCode.Decompiler](https://www.nuget.org/packages/ICSharpCode.Decompiler/) et [ILSpyX](https://www.nuget.org/packages/ICSharpCode.ILSpyX/) pour vos propres projets
* Nos [cmdlets PowerShell](https://github.com/icsharpcode/ilspy/blob/master/ICSharpCode.Decompiler.PowerShell) pour Linux/Mac/Windows dans ce dépôt
Fonctionnalités
-------
* Décompilation en C# (consultez l'[état de la prise en charge du langage](https://github.com/icsharpcode/ILSpy/issues/829))
* Décompilation de projet entier
* Ouverture depuis un flux NuGet, ouverture depuis un processus en cours d'exécution, en plus du disque et du GAC (Windows uniquement)
* Recherche de types/méthodes/propriétés (découvrez les [options](https://github.com/icsharpcode/ILSpy/wiki/Search-Options))
* Navigation par hyperliens entre types/méthodes/propriétés, signets
* Navigation entre types de base/dérivés, historique
* Explorateur de métadonnées d'assembly ([présentation de la fonctionnalité](https://github.com/icsharpcode/ILSpy/wiki/Metadata-Explorer))
* Décompilateur BAML vers XAML, prise en charge de !AvaloniaResources
* Prise en charge des binaires ReadyToRun pour .NET Core (voir le [tutoriel](https://github.com/icsharpcode/ILSpy/wiki/ILSpy.ReadyToRun))
* Extensible via des [plugins](https://github.com/icsharpcode/ILSpy/wiki/Plugins)
* Fonctionnalités supplémentaires dans les builds DEBUG ([pour les développeurs](https://github.com/icsharpcode/ILSpy/wiki/Additional-Features-in-DEBUG-Builds))
Licence
-------
ILSpy est distribué sous licence MIT. Veuillez consulter le document [À propos](https://github.com/icsharpcode/ilspy/blob/master/doc/ILSpyAboutPage.txt) pour plus de détails,
ainsi que les [mentions de tiers](https://github.com/icsharpcode/ilspy/blob/master/doc/third-party-notices.txt) pour les bibliothèques open source incluses.
Comment compiler
------------
#### Windows :
- Assurez-vous que [PowerShell](https://github.com/PowerShell/PowerShell) 7+ est installé (Windows PowerShell version 5.0 minimum fonctionne également)
- Clonez le dépôt ILSpy avec git.
- Exécutez `git submodule update --init --recursive` pour télécharger le sous-module ILSpy-Tests (utilisé par certains cas de test).
- Installez Visual Studio (version documentée : 18.0/2026). Vous avez besoin des composants de charge de travail suivants :
- Charge de travail « Développement .NET Desktop ». Cette charge de travail inclut le SDK .NET Framework 4.8 et le pack de ciblage .NET Framework 4.7.2, ainsi que le [SDK .NET 10.0](https://dotnet.microsoft.com/download/dotnet/10.0) (ILSpy.csproj cible .NET 10.0, mais nous avons aussi des projets net472). Nos tests unitaires nécessitent le [SDK .NET 11.0](https://dotnet.microsoft.com/download/dotnet/11.0).
- Charge de travail « Développement d'extensions Visual Studio » (Remarque : ILSpy.VSExtensions.slnx est séparé de ILSpy.slnx et cette charge de travail est donc facultative)
- Composant individuel « MSVC v143 - VS 2022 C++ x64/x86 build tools » (ou similaire)
- _L'ensemble d'outils VC++ est facultatif_ ; s'il est présent, il est utilisé pour `editbin.exe` afin de modifier la taille de pile utilisée par ILSpy.exe de 1 Mo à 16 Mo, car le décompilateur fait un usage intensif de la récursion, où de petites tailles de pile entraînent des problèmes dans des méthodes très complexes.
- Ouvrez ILSpy.slnx dans Visual Studio.
- La restauration des packages NuGet téléchargera automatiquement les dépendances supplémentaires
- Exécutez le projet « ILSpy » pour l'interface utilisateur d'ILSpy
- Utilisez l'« Explorateur de tests » de Visual Studio pour voir/exécuter les tests
- Si vous ne vous intéressez qu'à un sous-ensemble spécifique d'ILSpy, vous pouvez également utiliser
- ILSpy.Desktop.slnf : pour l'interface utilisateur Avalonia multiplateforme et ses tests
- ILSpy.XPlat.slnf : pour l'outil CLI multiplateforme (ilspycmd) ou les cmdlets PowerShell
- ILSpy.VSExtensions.slnx : pour les extensions Visual Studio
**Remarque :** Visual Studio inclut une version du SDK .NET gérée par l'installateur de Visual Studio - une fois que vous mettez à jour, elle peut aussi être mise à niveau.
Veuillez noter qu'ILSpy n'est compatible qu'avec le SDK .NET 11.0 et que Visual Studio refusera de charger certains projets de la solution (et les tests unitaires échoueront).
Si ce problème se produit, veuillez installer manuellement le SDK .NET 11.0 depuis [ici](https://dotnet.microsoft.com/download/dotnet/11.0).
#### Unix / Mac :
- Assurez-vous que le [SDK .NET 10.0](https://dotnet.microsoft.com/download/dotnet/10.0) (pour l'exécution) et le [SDK .NET 11.0](https://dotnet.microsoft.com/download/dotnet/11.0) (pour les tests) sont installés. Mieux encore, utilisez [dotnetup](https://github.com/dotnet/sdk/tree/release/dnup/documentation/general/dotnetup) avec le canal SDK preview.
- Assurez-vous que [PowerShell](https://github.com/PowerShell/PowerShell) est installé (anciennement appelé PowerShell Core)
- Clonez le dépôt avec git.
- Exécutez `git submodule update --init --recursive` pour télécharger le sous-module ILSpy-Tests (utilisé par certains cas de test).
- Utilisez `dotnet build ILSpy.Desktop.slnf` pour compiler l'interface utilisateur de bureau Avalonia multiplateforme ; exécutez-la avec `dotnet run --project ILSpy`.
- Utilisez `dotnet build ILSpy.XPlat.slnf` pour compiler uniquement l'outil CLI (ilspycmd) et les cmdlets PowerShell.
Nous recommandons [Visual Studio Code](https://code.visualstudio.com/) ou ses dérivés avec [DotRush](https://github.com/JaneySprings/DotRush), également disponible pour les dérivés de VS Code.
Comment contribuer
-----------------
- Signalez les bogues
- Si vous souhaitez proposer une pull request, veuillez ajouter https://github.com/icsharpcode/ILSpy/blob/master/BuildTools/pre-commit à votre `.git/hooks` pour éviter de valider du code mal formaté. Nous utilisons des tabulations et non des espaces. Le serveur de build exécute le même script, donc toute pull request utilisant un mauvais formatage échouera.
[Contributeurs](https://github.com/icsharpcode/ILSpy/graphs/contributors) actuels et passés.
Politique de confidentialité pour ILSpy
------------------------
ILSpy ne collecte aucune information personnellement identifiable et n'envoie pas les fichiers utilisateur à des services tiers.
ILSpy n'utilise aucun service APM (Application Performance Management) pour collecter des données de télémétrie ou des métriques.