Skip to content

ILSpy 8.0 Preview 3

Compare
Choose a tag to compare
@christophwille christophwille released this 04 Dec 15:18
· 418 commits to master since this release
1e00940

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

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.