The major news item of this release cycle is us porting ILSpy from WPF to Avalonia. With this port, ILSpy is now available on Linux and Mac in addition to Windows. Do note that there is no longer a WPF frontend, it was entirely removed in favor of the new Avalonia one.
Aside from this already major UI work, a few other long-standing UI features from our wish list made it into ILSpy:
- File / Open from NuGet feed
- File / Open from running process (all platforms!)
- Window / Bookmarks (full-featured bookmarks implementation for the decompiled C# view)
- View / Options / Display / Show Omnibar (breadcrumb/search bar feature at the top of decompiled code)
A second focus area was improving the ilspycmd story for agentic development. Download numbers for our dotnet tool took off in the last quarter of 2025, and agents like Claude are the reason for that (downloads are now exceeding 70k/week). Given we are using Claude as well, we found a few areas lacking that needed improvement, especially to save on token spend:
- PR #3924: ilspycmd: add --member for single-member decompilation
- PR #3801: Fix #3797: resolve ilspycmd -t type names with fuzzy matching
- PR #3951: Add --dump-table metadata dump mode to ilspycmd
Together with list/extract embedded resources, decompile BAML to XAML which shipped in 10.1, we now have a good set of optimized options for the most common scenarios in skills and tool calling available for you.
A part of this initiative was hardening:
- PR #3843: Bound XamarinCompressedFileLoader against crafted XALZ headers
- PR #3842: Bound WebCilFile section access against mapped-view length
- PR #3841: Harden BAML reader against crafted-resource crashes
- PR #3840: Bound .rsrc resource-tree parsing against crafted input
- PR #3838: Guard against OOB read when bundle signature is at file start
The third pillar of this release is fixing long-standing annoyances and in general investing in tech debt, eg fuzzing our decompiler engine with NuGet packages. A lot (!) of the changes detailled in the release notes for preview 1 and rc deal with exactly those many small to big improvements.
Finally, we'd like to point out one retirement: the VS2017/2019 add-in has been removed, we continue to support VS2022-2026.
What is new since RC?
- PR #3976: Fix #3451: qualify an explicit implementation as the type implements it
- PR #3971: Fix #3510: keep exporting a project when a member cannot be decompiled
- PR #3969: Keep null-conditional LINQ chains in method syntax — @sailro, thank you!
- PR #3970: Generate DecompilerSettings boilerplate from [DecompilerSetting] attributes
- PR #3967: Keep ref-returning switches as statements — @sailro, thank you!
- PR #3950: Reconstruct nested deconstruction designations
- PR #3956: Fix #3952: decompile VB.NET anonymous types and queries to valid C#
- PR #3959: Fix overflow approximating fractions of large negative constants
- PR #3960: Fix overflow computing the element count of a multi-dim array initializer
- PR #3961: Recognize a protected copy constructor on a sealed record
- PR #3958: Fix crash decompiling reference assemblies with stripped method bodies
- PR #3955: Fix #3954: name the entry point of a top-level program 'Main'
For a full list of changes click here.
This release is based on .NET 10.0. Please make sure that you have it installed on your machine beforehand.
Note for Mac users: see https://github.com/icsharpcode/ILSpy/wiki/Build-Artifacts#running-the-macos-artifact because the ILSpy.app is neither signed nor notarized.