It's been nearly a year since the 6.1.9 release. This is the first release candidate for the 6.2.0 update. If you encounter any issues please report them! Especially if they were not present in the prior versions. With that out of the way, let's go over the things that have changed:
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
, andSave XAML
options in theFile
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 thejmp
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.
- Added jump to reference support for
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.
- Read probe paths from
.config
files when searching for satellite assemblies during project export. - Fixed incorrect label in the
Save Module
dialog. - 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.
- 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.
- Fixed a bug that caused the infamous
- 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.
New Contributors
- @fifty-six made their first contribution in #13
- @DeNcHiK3713 made their first contribution in #22
- @InKahootz made their first contribution in #35
- @riQQ made their first contribution in #36
- @wwh1004 made their first contribution in #42
- @SychicBoy made their first contribution in #83
Full Changelog: v6.1.9...v6.2.0-rc1
As a final note, I would like to thank everyone for their incredible support on this project! I never expected it to blow up like this. I can't express how thankful I am for all the bugs being reported, feature ideas, and pull requests!