.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Christoph Wille 71240464ee Update test clients to 3.1.0.3570-alpha1-debug 7 years ago
BuildTools Add 3.0.x branch handling to appveyor-install.ps1 8 years ago
ICSharpCode.Decompiler Fix folding bug with string interpolation 7 years ago
ICSharpCode.Decompiler.Console Update test clients to 3.1.0.3570-alpha1-debug 7 years ago
ICSharpCode.Decompiler.PowerShell Update test clients to 3.1.0.3570-alpha1-debug 7 years ago
ICSharpCode.Decompiler.Tests Add minimal pretty tests for ref structs. 7 years ago
ILSpy Fix initialization of default value for LanguageVersion 7 years ago
ILSpy-tests@4ed2643065 Use mcs for correctness tests. 7 years ago
ILSpy.AddIn Explicitly include minor versions in vsixmanifest 7 years ago
ILSpy.BamlDecompiler Reference Mono.Cecil using a package reference instead of a submodule 8 years ago
ILSpy.BamlDecompiler.Tests Upgrade to NUnit 3.9 and enable parallel test execution. 7 years ago
NRefactory.VB Fix #716: OverflowException when converting System.Enum To System.Int64 in CustomAttribute 9 years ago
SharpTreeView Fix NRE in SharpTreeNodeView 7 years ago
TestPlugin Added an About page addition to the test plugin. 7 years ago
cecil@14e6162ae5 Reference Mono.Cecil using a package reference instead of a submodule 8 years ago
doc Add instructions for modeling the "?." operator in the ILAst. 7 years ago
.editorconfig Convert most Rebracer rules to .editorconfig (natively supported by VS) 8 years ago
.gitattributes Add .gitattributes and normalize newlines 12 years ago
.gitignore Only use mcs for the first compilation pass. Consistently run test cases using .NET 4.x runtime. 7 years ago
.gitmodules Add AwaitInFinallyTransform 7 years ago
.tgitconfig Add tgit.icon project config 11 years ago
DecompilerNuGetDemos.workbook Update test clients to 3.1.0.3570-alpha1-debug 7 years ago
Frontends.sln PowerShell cmdlets for ILSpy 8 years ago
ILSpy.sln Require Visual Studio 2017 or newer 8 years ago
NuGet.config Rename ics.d.console.sln -> Frontends.sln 8 years ago
README.md Add appveyor nuget feed to README 7 years ago
appveyor.yml Push VSIX version number to 1.7.2 8 years ago
clean.bat Remove references to Mono.Cecil from bat files. 8 years ago
debugbuild.bat Remove references to Mono.Cecil from bat files. 8 years ago
preparerelease.bat Add preparerelease.bat 8 years ago
releasebuild.bat Remove references to Mono.Cecil from bat files. 8 years ago

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.

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 ICSharpCode.Decompiler.Console.sln to work.

How to contribute

Current and past contributors.