Releases
v7.0
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 )
You can’t perform that action at this time.