ILSpy v6.0-preview4 Release Notes

Release Date: 2020-06-17 // almost 4 years 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.