github icsharpcode/ILSpy v9.0-preview1
ILSpy 9.0 Preview 1

latest releases: v9.0-preview3, v9.0-preview2
8 months ago

ILSpy 9.x is based on .NET 8.0. All artifacts except the self-contained distribution are built framework-dependent, which means .NET 8.0 or later must be installed prior to starting ILSpy.

Breaking Changes

  • ICSharpCode.Decompiler: Added MetadataFile base class for PEFile
  • ICSharpCode.Decompiler: IModule.PEFile is now named IModule.MetadataFile
  • ICSharpCode.Decompiler/ILSpyX: Added IFileLoader API to allow for easier extensibility of supported file formats (see #3191)
  • ILSpy: Split BAML decompiler into library and add-in (see #3178)
  • ILSpy/ILSpyX: Moved non-UI analyzer API to ILSpyX (see #3186)
  • ICSharpCode.Decompiler: IProjectFileWriter and IProjectInfoProvider APIs are now public (see #3151 and #3191)

Performance

  • Activate Dynamic Adaptation To Application Sizes (DATAS) (#3122).
  • RDP hardware acceleration (#3122): Enabling hardware acceleration for Remote Desktop Protocol (RDP) to boost performance.

New Language Features

  • Update pattern-detection to Roslyn v4.9.2
  • Added support for switch on (ReadOnly)Span<char> using a compiler-generated hash function.
  • Added new a.GetValueOrDefault(b) -> a ?? b transform for side-effect-free default values.

Enhancements

  • Added support for reading standalone ECMA-335 metadata (portable PDB and other metadata blobs) (see #3149)
  • Added support for reading WebCIL assemblies (IL embedded in WASM) (see #3184)
  • #3118: Add "Clear assembly list" menu item.
  • #2893: Add option to disable automatic assembly loading.
  • IL output: Add indentation level to make it easier to see custom attributes belonging to interface implementations.
  • IL output: Print metadata token of custom attribute.

Contributions

  • Fix metadata display of DynamicLocalVariable and DefaultNamespace custom debug information (#3111, @ElektroKill)
  • Read and use tuple element names and dynamic type information from PDBs (#3114, @ElektroKill)
  • Adjust colors of AvalonEdit built-in highlightings for dark themes (#3138, @ltrzesniewski)
  • Bugfix: infinite loop in DetermineEffectiveAccessibility (#3164, @yzdeveloper)
  • TreeView: Add referenced types, members and exported types under references (#3092, @fowl2)
  • Add support for Mono C# compiler 2.6.4 pinned region with array variable (#3110, @ElektroKill)

Bug fixes

  • Fix #3072: Ignoring resources with the same name as a namespace.
  • Fix bug in UnknownType: Ensuring that the FullName of nested unknown types contains the outer type name(s), not just the namespace and nested type name.
  • Fix #3153: Always using SHA1 for public key tokens.
  • Fix ILSpy for ZIP files/VSIX with bundle signatures: Enabling ILSpy to open ZIP files and VSIX packages containing bundle signatures.
  • Omit package entries from the treeview that denote the directory.
  • Fix #3142: Exception when analyzing source of library with global assembly attributes
  • Fix #3113: Remove GetAlternativeName and instead reuse existing names, if there are no conflicts.

And many other fixes, for a full list click here.

Don't miss a new ILSpy release

NewReleases is sending notifications on new releases.