v6.2.0, released 2022-06-14
As of today, one full year has passed since the v6.1.9 release and I'm proud to announce that the v6.2.0 update is finally ready for release.
New features:
- dnSpy now runs under .NET 6 and .NET Framework 4.8.
- Move to VS2022 icons for UI and exe files (by @InKahootz and @SychicBoy)
- Support for tilt/horizontal scrolling in the UI.
- Added support for editing custom attributes on module resources.
- Added support for modifying the Log2Rid value when saving the module.
- Add support for ARM64 target architecture in the assembly editor.
- Add an enum for PE Magic field in the PE editor (by @riQQ)
- Show debugged process's name in the title bar (by @InKahootz)
- Add support for writing VS2022 compatible .sln files.
- Added back the Save Code, Save BAML, and Save XAML options in the File context menu which save the contents of the currently open document tab.
- Debugger:
- Display a warning message before starting to debug a target file with a different bitness than the current dnSpy version running.
- Add a new option that allows to automatically break on <Module>::.cctor when starting to debug.
- Display the exception's HResult property when an unhandled exception is hit.
- ILSpy decompiler:
- Added jump to reference support for jmp() expressions created when the jmp CIL opcode is present.
- CIL disassembler now includes information about generic parameter attributes and constraints.
- Add more information to the output when disassembling the module node when using the CIL disassembler.
- The decompiler now splits up long method call chains using a new line.
- Generate debug info for yield break; statements.
Improvements and bug fixes:
- Fix the .NET 6 console executable having the incorrect subsystem set in the PE options resulting in a crash.
- Fixed escaping of namespaces in tooltips.
- Fixed syntax highlighting for structs in tooltips.
- Improved RVA <-> FileOffset conversions in PE editor to fix a crash with invalid values being passed in.
- Improved assembly resolution for .NET Standard, .NET Core, .NET 5, .NET 6.
- dnSpy now reads assembly resolution probe paths from .config files.
- Read probe paths from .config files when searching for satellite assemblies during project export.
- Fixed incorrect label in the Save Module dialog.
- Add support for searching by full name (by @mobile46).
- Optimized search module by reducing memory allocations.
- Improvements to GitHub Actions workflow (by @Gorialis).
- Use .NET Standard instead of .NET Framework for Roslyn projects fixing #84 (by @mobile46).
- ILSpy Decompiler
- Optimized the variable naming step in the decompiler by reducing memory allocations.
- Improved insertion of checked() blocks.
- Improved decompilation of query expressions.
- Prevent delegate construction decompilation from crashing the entire decompiler if it failed.
- Improved analysis for unsafe modifier.
- Ignore invalid prefixes when constructing the ILAst. This prevents a common method used to crash the decompiler from working.
- Many improvements and fixes to the async method decompilation logic.
- Optimized the removal of dead nop instructions when building the ILAst. This deficiency was a known method to crash dnSpy's decompiler by filling a method body with huge amounts of useless code.
- Fixed a rare case where field initializers would not be detected properly.
- Fixed a rarely occurring bug that resulted in incorrect ILAst being built.
- Optimized construction of ILAst by calculating the stack behavior of instruction only once and by caching the result of MethodDef.HasReturnType.
- Improved required parenthesis analysis.
- Fixed decompiler creating incorrect checked regions for some post increments.
- Debugger:
- Fixed a bug that caused the infamous ??? exception to occur when debugging.
- Improved debugging support for newer mono runtimes.
- Fixed a crash that occurred in the .NET Framework version of dnSpy when a module loaded into memory during debugging would contain an invalid file path resulting in a crash.
- BAML decompiler
- Resolve namespaces of properties.
- Fix Name attribute for properties incorrect in rare circumstances.
- Fix missing x:Static and x:Type (by @wwh1004)
Dependency updates:- Updated dnlib to 3.5.0
- Updated Iced to 1.17.0
- Roslyn compiler to 4.1.0
- Ookii.Dialogs.Wpf to 5.0.1
- VS MEF to 16.9.20
- ILSpy to 2.4
- Mono.Debugger.Soft was updated to the latest commit.
Note to extension developers: Please recompile your extensions for this version of dnSpyEx! Many dependencies have been updated and some of them have gone through API changes, for example, Iced.
Download and more info:
Code:
https://github.com/dnSpyEx/dnSpy/releases/tag/v6.2.0