.NET Decompiler
Clone or download
Latest commit ef86604 Oct 14, 2018
Permalink
Failed to load latest commit information.
BuildTools Update branches list in appveyor.yml Jun 24, 2018
ICSharpCode.Decompiler.Console Adjust output of ICSharpCode.Decompiler.Console ShowIL. Fix #1284. Sep 28, 2018
ICSharpCode.Decompiler.PdbProvider.Cecil Use Mono.Cecil instead of DiaSymReader to read classic PDB files. Aug 12, 2018
ICSharpCode.Decompiler.PowerShell Update frontends for Beta 2 Aug 13, 2018
ICSharpCode.Decompiler.Tests Update to SRM 1.6.0 and Roslyn 2.9. Adjust decompiler to new code pat… Oct 14, 2018
ICSharpCode.Decompiler Update to SRM 1.6.0 and Roslyn 2.9. Adjust decompiler to new code pat… Oct 14, 2018
ILSpy-tests @ e83c25d Update ILSpy-tests submodule reference. Jul 29, 2018
ILSpy.AddIn Improve parsing of TargetFramework attribute in UniversalAssemblyReso… Jul 28, 2018
ILSpy.BamlDecompiler.Tests Clean up PEFile, move Pdb related types to DebugInfo namespace Jul 7, 2018
ILSpy.BamlDecompiler Fix #1219: v4.x: crashing on XmlBamlReader.ReadDefAttribute() Jul 20, 2018
ILSpy.Tests Update to SRM 1.6.0 and Roslyn 2.9. Adjust decompiler to new code pat… Oct 14, 2018
ILSpy Fix #1265: ILSpy doesn't decompile .baml file when reloading assembie… Oct 10, 2018
SharpTreeView Replace SharpTreeNodeView InvalidOperationException with debug message. Mar 17, 2018
TestPlugin Rename IAssembly -> IModule. Jul 13, 2018
doc Fix #1192: Use custom ResourcesFile implementation Jul 1, 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 Ignoring generated manifest file. Jun 3, 2018
.gitmodules Upgrade to Cecil 0.10.0. Jun 2, 2018
.tgitconfig Add tgit.icon project config Apr 6, 2014
DecompilerNuGetDemos.workbook Update frontends for Beta 2 Aug 13, 2018
Frontends.sln Remove references to non-existent Rebracer.xml and apply .editorconfi… Aug 13, 2018
ILSpy.sln Remove references to non-existent Rebracer.xml and apply .editorconfi… Aug 13, 2018
NuGet.config Rename ics.d.console.sln -> Frontends.sln Oct 31, 2017
README.md Add VS2017 extension to README.MD Closes #1171 Jul 15, 2018
appveyor.yml Add CSharpLanguageTests. Jul 30, 2018
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

README.md

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:

Features

  • 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

License

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

Windows:

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

(Optional, Windows-only) Note: If you want to use the same build configuration as the build server, you will have to install VC++ 2017 version 15.7 v14.14 latest v141 tools (or similar) from the "Individual components" section in the Visual Studio Setup. We use editbin.exe to modify the stack size used by ILSpy.exe from 1MB to 16MB, because the decompiler makes heavy use of recursion, where small stack sizes lead to problems in very complex methods.

Unix:

  • 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 Frontends.sln to work.

How to contribute

Current and past contributors.