github icsharpcode/ILSpy v7.0
ILSpy 7.0

latest releases: v9.0-preview1, v8.2, v8.1.1...
2 years ago

New Language Features

  • C# 9.0: record classes
  • C# 9.0: with expressions
  • C# 9.0: primary constructors
  • Support for .NET 5 custom calling conventions
  • Improved support for Unsafe-intrinsics

UI Improvements

  • Dark mode (@tom-englert in #2347)
  • .NET bundles and Nuget packages are now directly embedded in the tree view
  • Search enabled in NuGet packages
  • Added setting highlight the current line in the code view (see #2224, by @DickvdBrink)
  • Simple UI language switching support

General

  • Support for .NET bundles (see #2191)
  • Detect use of csc /deterministic switch
  • Improve assembly resolver API to allow async usage
  • #2286: Enable server-mode GC in ILSpy
  • Building ILSpy for .NET 5 is now possible (see multitargeting.props.template)
  • Improved project/solution decompilation (see #2186, by @wwh1004)
  • Updated ReadyToRun (see #2238 & #2279, by @cshung)
  • Added inline display of CustomDebugInformation table entries in metadata
  • Add metadata tree nodes for blob, guid, string and user string heap
  • Performance improvements in DataGrid filter (by @tom-englert)
  • Adjust fitness calculation for destructors (by @MikeFH in #2344)
  • Refactored insertion of search results (by @MikeFH in #2335)
  • Align dependencies with Roslyn 3.8.0, see #2173 (affects ICSharpCode.Decompiler NuGet package users)
  • Removed the dependency on Humanizer (see #2232 and #2235)

Bug fixes

  • Fix #2192: Add support for VB.NET delegate construction
  • Fix #2195: foreach loop conversion accidentally removes end container labels
  • Fix #2197: .NET 5 RC2: "Analyze/Used By" throws BadImageFormatException
  • Fix #2196: Add support for extern local functions.
  • Fix #1079: CSharpFormattingOptions.AutoPropertyFormatting has no effect
  • Fix #2222: switch-expression does not support implicit conversions.
  • #2241: Fix possible NRE in TypeProvider.GetTypeFromReference
  • Fix #2233: ResourcesFileTreeNode no longer creates child nodes for BAML files
  • Fix #2230: do not emit directly consecutive null propagation operators
  • Fix #603: Single element arrays should not span multiple lines
  • Fixed crash when loading DLLs with invalid sections in their .deps.json (see #2227, by @bernd5)
  • #2278: Implement support for CSharpBinderFlags.InvokeSimpleName
  • #2280: Add additional checks to GenerateVariableName
  • #2275: Fix exception when assembly does not contain proper MetadataVersion.
  • #2260: Fix switch(string) transform: handle empty cases where the C# compiler optimizes out the if
  • #2288: Fix decompilation of nullable lifting in expression trees (by @wwh1004)
  • PDBGen: Ignore duplicated ILFunctions (see 5a8b488)
  • #2314: ILSpy incorrectly resolves a runtime dependency when dll is present in both WindowsDesktop.App and NETCore.App
  • #1648 and #2133: Use simple assembly names for KnownThings to allow the resolver to use the relative framework version
  • #2349: Use proper ExpressionType with DynamicCompoundAssign.
  • #1512: XmlDocumentationProvider Unable to load some XML files to have special characters
  • #2342: Do not generate empty names for foreach loop variables.
  • #2340: Do not traverse assemblies with load errors in AssemblyList.GetAllAssemblies()
  • #2356: Can't navigate if switch language in Analyze panel
  • Improved decompilation of rethrow/throw and finally blocks in async methods. (see #1749, #2339 and #2353)

Don't miss a new ILSpy release

NewReleases is sending notifications on new releases.