.NET Decompiler
C# Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
BuildTools Add 3.0.x branch handling to appveyor-install.ps1 Dec 21, 2017
ICSharpCode.Decompiler.Console Update test clients to Mar 5, 2018
ICSharpCode.Decompiler.PowerShell Update test clients to Mar 5, 2018
ICSharpCode.Decompiler.Tests Use MetadataToken for type lookups within the current assembly. Mar 17, 2018
ICSharpCode.Decompiler Fix #1101: Error decompiling System.Threading.Tasks.Task System.Net.… Mar 21, 2018
ILSpy-tests @ 4ed2643 Use mcs for correctness tests. Feb 26, 2018
ILSpy.AddIn Deactivate OpenCodeItemCommand Mar 18, 2018
ILSpy.BamlDecompiler.Tests Upgrade to NUnit 3.9 and enable parallel test execution. Feb 26, 2018
ILSpy.BamlDecompiler Cache UsingScope during decompiler run. Mar 10, 2018
ILSpy Set VersionName = 'beta2' Mar 20, 2018
NRefactory.VB Fix #716: OverflowException when converting System.Enum To System.Int… Jun 2, 2016
SharpTreeView Replace SharpTreeNodeView InvalidOperationException with debug message. Mar 17, 2018
TestPlugin Added an About page addition to the test plugin. Feb 5, 2018
cecil @ 14e6162 Reference Mono.Cecil using a package reference instead of a submodule Dec 1, 2017
doc Add instructions for modeling the "?." operator in the ILAst. Jan 12, 2018
.editorconfig Convert most Rebracer rules to .editorconfig (natively supported by VS) Sep 3, 2017
.gitattributes Add .gitattributes and normalize newlines Oct 1, 2013
.gitignore Only use mcs for the first compilation pass. Consistently run test ca… Feb 26, 2018
.gitmodules Add AwaitInFinallyTransform Mar 3, 2018
.tgitconfig Add tgit.icon project config Apr 6, 2014
DecompilerNuGetDemos.workbook Update test clients to Mar 5, 2018
Frontends.sln PowerShell cmdlets for ILSpy Oct 31, 2017
ILSpy.sln Require Visual Studio 2017 or newer Aug 31, 2017
NuGet.config Rename ics.d.console.sln -> Frontends.sln Oct 31, 2017
README.md Add appveyor nuget feed to README Jan 29, 2018
appveyor.yml Push VSIX version number to 1.7.2 Dec 21, 2017
clean.bat Remove references to Mono.Cecil from bat files. Dec 1, 2017
debugbuild.bat Remove references to Mono.Cecil from bat files. Dec 1, 2017
preparerelease.bat Add preparerelease.bat Dec 21, 2017
releasebuild.bat Remove references to Mono.Cecil from bat files. Dec 1, 2017


ILSpy Join the chat at https://gitter.im/icsharpcode/ILSpy NuGet Build status Twitter Follow ilspy.net ILSpy VS extension

ILSpy is the open-source .NET assembly browser and decompiler.

Download: latest release | latest CI build (master)

CI Build Nuget Feed (master): https://ci.appveyor.com/nuget/ilspy-masterfeed

Decompiler Frontends

Aside from the WPF UI ILSpy (downloadable via Releases, see also plugins), the following other frontends are available:


  • Decompilation to C#
  • Whole-project decompilation (csproj, not sln!)
  • Search for types/methods/properties (substring)
  • Hyperlink-based type/method/property navigation
  • Base/Derived types navigation, history
  • BAML to XAML decompiler
  • Extensible via plugins (MEF)
  • Check out the language support status


ILSpy is distributed under the MIT License.

Included open-source libraries:

  • Mono.Cecil: MIT License (part of ICSharpCode.Decompiler)
  • LightJson: MIT License (part of ICSharpCode.Decompiler)
  • Humanizer: MIT License (part of ICSharpCode.Decompiler)
  • AvalonEdit: MIT License
  • SharpTreeView: LGPL
  • Ricciolo.StylesExplorer: MS-PL (part of ILSpy.BamlDecompiler.Plugin)
  • CommandLineUtils: Apache License 2.0 (part of ICSharpCode.Decompiler.Console)

How to build


  • Check out the repository using git.
  • Execute git submodule update --init --recursive to get all required submodules.
  • Use ILSpy.sln to work.


  • Check out the repository using git.
  • Execute git submodule update --init --recursive to get all required submodules.
  • Edit \ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj Add Sdk="Microsoft.NET.Sdk" to the Project element. This is required due to a tooling issue on Unix. Please do not commit this when contributing a pull request!
  • Use ICSharpCode.Decompiler.Console.sln to work.

How to contribute

Current and past contributors.