ILSpy v5.0 Release Notes
Release Date: 2019-09-19 // over 4 years ago-
ILSpy 5.0
๐ New Language Features
- C# 8.0: Nullable Reference Types
- C# 7.3:
unmanaged
generic constraint - ๐ C# 7.3 Indexing movable fixed buffers: Fixed buffers can be indexed into without first being pinned.
- ๐ Use Unsafe intrinsics to represent IL operations that cannot be expressed in C#.
- ๐ C# 7.0 Generalized async return types
- C# 7.0 Local functions (#1586)
- C# 7.0 Throw expressions (#1600)
๐ New Features
- Decompile a set of assemblies to a solution (#1550 by @dymanoid)
- ๐ New BAML Decompiler
- ๐ MSIX for Microsoft Store: @onovotny added build support (including Azure Pipelines).
- ๐ Generate VS Windows Forms Designer-compliant code if a method is identified as Windows Forms InitializeComponent
- โ Added new
RemoveDeadStores
option. - โ Added new
AlwaysShowEnumMemberValues
option.
๐ Decompiler Engine Improvements & Bugfixes
- ๐ Improved stability of decompiler and disassembler on invalid metadata tokens.
- ๐ Improved decompilation in case not all types/references are available.
- โ Added switch-on-string pattern for empty string case.
- โ Add support for
ReadOnlySpan<T>
initialization pattern
- ๐ Improved decompilation of
ref readonly
delegates and return types.- Improved decompilation of
ref
typed expressions, in particularref
/in
extension methods andin
parameters.- ๐ Improved support for Mono
yield return
state machines and closure types. - ๐ Improved decompilation of LINQ queries
- PDB generator now can emit "method stepping information" for async #1422
- ๐ Improved support for Mono
๐ Improvements & Bugfixes
- ๐ Many minor bug and stability fixes.
- ๐ Improved performance in ILInlining step
- VSIX: Fix issue of missing dependencies
๐ป UI Improvements
- ๐ป Avoid blocking the UI when waiting on assembly load while restoring the saved position in the treeview
- ๐ Support obfuscated names in treeview and search #1359
- ๐จ Escape non-printable characters in IL view
- Rework C# decompiler options dialog (unify language settings panel)
- ๐ง Make indentation of decompiled code configurable.
- ๐ Chinese translation by @maikebing (#1299) screenshots
- Small improvements in search panel by @mcpiroman (#1476)
- ๐ Show error message if an entity cannot be analyzed instead of crashing.
- ๐ Improved linking in the decompiler view:
- method group / delegate references
- the constructor of an attribute is reachable, by clicking on the open/close parenthesis.
- fixed fields are now properly linked
- โ Added matching bracket highlighting
- โก๏ธ Updated to AvalonEdit 6.0 Preview
dotnet
ilspycmd
Tool- โ Add -d|-debuginfo option See Demo app
- โ Add -r|-referencepath option
Architectural Changes
- ๐ We dropped support for all TFMs except netstandard2.0 #1416
- โ Reactivate many tests from old decompiler
Known issues & limitations
- C# 8.0 nullable reference types metadata only supports the latest format. Note that this is a breaking change and assemblies generated by older preview versions of C# 8 are not supported. (See #1619 (comment))
- ๐ Generic local functions are not yet supported (#1588)
- "Open assembly from GAC" may require administrator privileges (#1498)
- ๐ Matching bracket highlighting does not yet support all language features that introduce new syntax.