finds.dev← search

// the find

icsharpcode/ILSpy

★ 25,388 · C# · MIT · updated Jun 2026

.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!

ILSpy is the de facto open-source .NET decompiler — used directly, embedded in Visual Studio (F12 go-to-definition ships ILSpy's engine), and available as a NuGet library for programmatic decompilation. If you've ever pressed F12 on a BCL type in VS and seen readable C#, you've used this. It's for anyone who debugs third-party assemblies, investigates obfuscated code, or needs to recover source from a DLL.

The `ICSharpCode.Decompiler` NuGet is genuinely useful as a library — you can point it at any assembly and get C# out programmatically, which is handy for tooling and analysis pipelines. PDB generation from decompiled output is a standout feature: you get breakpoints and stepping in assemblies you don't have source for. ReadyToRun support means it handles the tiered-compilation artifacts that trip up most decompilers. The test suite is thorough — hundreds of IL round-trip tests with expected C# output stored as files, so regressions are caught rather than discovered by users.

The decompiler still chokes on heavily optimized release builds and certain async state machine patterns — the output compiles but doesn't always reflect what the developer originally wrote. The Avalonia-based cross-platform UI is functional but clearly an afterthought relative to the Windows WPF version; layout and keyboard navigation feel rough on Linux/Mac. Plugin API is not versioned or stable, so third-party plugins break on minor releases with no migration path. Build setup is surprisingly painful — you need both .NET 10 and .NET 11 SDKs simultaneously, which is an odd requirement that catches people off guard.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →