ILSpy v6.0-preview4 Release Notes

Release Date: 2020-06-17 // over 1 year ago
  • 🆕 New Language Features

    • C# 8.0: Indexing and Slices (Ranges)

    🆕 New Features

    • 🚚 TEMPORARILY REMOVED #2013 (comment): Added the capability to extract self-contained executables (PublishSingleFile)
    • 💅 Project export: Added an option to allow SDK-style format for project files. (#2031 by @dymanoid)
    • Dynamic assembly list generation for target framework
    • Analyzers: Added "Implements interface"-Analyzer (#2028 by @dymanoid)

    💻 UI Improvements

    • Using the middle mouse button to click on tree nodes and links will open the decompilation result in a new tab.
    • 📇 IL/IL with C#/ReadyToRun: Add metadata token hyperlinks to type, field, property and event declarations.
    • IL/IL with C#/ReadyToRun: Add rich-text tooltips
    • 👉 Show target frameworks next to the assembly version in the tree-view

    ✨ Enhancements

    • ReadyToRun: Using import cell name to describe callees (#1991 by @cshung)
    • ReadyToRun: Decorate the ready to run disassembly with DebugInfoBounds (#1987 by @cshung)
    • 👌 Improve ReduceNestingTransform by considering nested containers (#1880 by @Chicken-Bones)
    • 🏗 The decompiler now supports Scalar Replacement Of Aggregates, which by default only works on display-classes and display-structs. There is an option to make it affect all instances and uses of plain types containing fields only. NOTE: It is still in preview stage. You can activate it when using a debug build.
    • ➕ Added support for null-propagation on unconstrained generic expressions
    • ➕ Added support for [module: NullablePublicOnly]
    • ✨ Enhanced assembly resolution to distinguish target frameworks and use the correct references in case there are multiple versions of framework assemblies loaded.
    • ⚡️ Updated links to MS Docs (#2030 by @AustinWise)
    • 🚚 #1498: Remove Fusion API usage: Use standard file enumeration instead. This should enable us to use the GAC even with restricted access, as only the LIST permission is required.

    PDB generation

    • 👌 Improved sequence points of try-catch statements

    🐛 Bug fixes

    • 🛠 Fix #1946: Don't move return into try block when doing so changes the semantics of a finally block.
    • 🛠 Fix #1992: Analyzer fails to find usages of a type when it is used as a type argument
    • ↪ Workaround dotnet/roslyn#43659 in decompiled code.
    • 🛠 And many other fixes, for a full list click here.