ILSpy 8.0 Preview 3
christophwille
released this
04 Dec 15:18
·
614 commits
to master
since this release
ILSpy 8 is based on .NET 6.0 compared to .NET Framework 4.7.2 for the previous generations of ILSpy. All artifacts except the self-contained distribution are built framework-dependent, which means .NET 6.0.2 or newer minor release must be installed prior to starting ILSpy.
IMPORTANT: If you don't have the .NET Desktop Runtime installed, the .NET bootstrapper (a dialog popping up when you try to run ILSpy) will link you to the .NET Runtime which supports only console apps! Please follow the above link and download the Desktop Runtime.
New Language Features
- C# 11: Required members
- Updated pattern detection for Roslyn 4.4.0
Contributions
- Add option to always fully qualify type names with
global::
(see #2762 by @hexafluoride) - Refresh ready to run for .NET 7 (see #2774 by @cshung)
- Fix #2736: ILSpy decides to fully qualify type name when it is not necessary (see #2789 by @ElektroKill)
- Fix initialization of FakeProperty with setter (see #2792 by @exyi)
- Add progress reporting to PortablePdbWriter (see #2802 by @andrewcrawley)
- Include assembly name in decompiled code (see #2810 by @miloush)
- Add
IEntityProcessor
toReflectionDisassembler
(see #2835 by @tom-englert) - Fix dynamic type index calculation in
ApplyAttributeTypeVisitor
(see #2840 by @ElektroKill) - Add support for another
using
pattern (see #2841 by @ElektroKill) - Fix debug assertion regarding using directives (see #2843 by @ElektroKill)
- Add support for VB cached delegate initialization (see #2844 by @ElektroKill)
- Add support for VB auto events (see #2845 by @ElektroKill)
- Add support for lock statements within yield return state machines (see #2846 by @ElektroKill)
- Add support for VB async state-machines (see #2853 by @ElektroKill)
- Enable various passing ignored tests (see #2852 and #2854 by @ElektroKill)
- Improve support for post-increment/decrement on pointers (see #2856 by @ElektroKill)
Enhancements
- Various performance improvements in the type system and decompiler engine. (see #2766 and #2754)
- Support native ints in "Combine bit.and into shift" transform
- #2780: Show embedded resource size
Bug fixes
- Fix #2759: Some characters cause rendering issues in the tree view causing ILSpy to freeze. Also ignore embedded resources with an invalid offset, treat them as having zero byte length.
- Fix #2763: Improve decompilation of switch-on-enum by preserving enum type information when inlining local variables into SwitchInstruction.Value.
- PDB generation: Use row ID instead of token in AsyncDebugInfo blob.
- Fix #2806: Do not use implicitly typed out variables, if argument and parameter types do not match exactly.
- #2823: Introduce IType.GetDefinitionOrUnknown() to allow better detection of async state-machines involving unknown types.
- Fix #2825: Missing whitespace after new()
- Fix #2827: Allow users to enter search queries that match our prefixes.
WholeProjectDecompiler
: Fix #2830: Can't decompile project with / in resource name on Windows- Fix #2831: Popup/Tooltip scaling on multi-monitor multi-DPI setups.
WholeProjectDecompiler
: Fix #2850: Make sure that type names longer than 255 characters are handled correctly.
And many other fixes, for a full list click here.