This page details the latest updates and changes in dotPeek.
The 2025.1 release brings several improvements to the decompiler, enhancing support for the latest C# features and improving code readability. Here’s what’s new:
required members.
System.Threading.Lock type introduced in C# 13.
ref fields and scoped parameter modifiers.
allows ref struct generic anti-constraint.
using for ref struct types.
The IL Viewer tool window now provides IL code for assembly manifest, including:
This IL code is shown when the caret in the text editor is on an assembly or module
attribute or somewhere inside an <AssemblyName>.cs file for
external assemblies.
When working with classes that declare a primary constructor, dotPeek will now display the constructor and its parameters correctly, giving you a complete view of how objects are instantiated directly from the decompiled code.
NET6_0_OR_GREATER) from the target framework or
Portable PDB of the associated assembly, ensuring accurate code representation.
The Assembly Explorer tool window now detects and presents the build configuration of assemblies, providing clearer insights into the assembly’s compilation context.
The 2024.1 update introduces the new Assembly Diff tool window to dotPeek. There are a couple of changes that come with it:
.zip
archives has been moved from the Assembly Explorer to the Assembly Diff
tool window.
dotPeek now supports the WebCIL packaging format for WebAssemblies. The support covers:
.wasm files in the Assembly Explorer.
dotPeek 2023.3 is able to compare NuGet packages, folders, and .zip files.
The ability to compare assemblies now has more comparison options. You can choose between several diff modes (Show all, Show only differences, Show only signature differences, Show only public API differences). Additionally, you can specify if you’d like the diff to ignore member/attribute order differences, as well as differences in nullable reference types’ annotations.
#nullable disable directives are shown in decompiled sources.
dotPeek 2023.2 provides a way to compare two assemblies in detail. This feature is especially useful when scrutinizing the differences between two versions of a specific assembly and searching for potential vulnerabilities that may have been introduced in a newer version.
Click here for more information.
The 2023.1 version of dotPeek contains the following improvements for the IL Viewer tool window:
async methods, lambdas, local functions, and local
functions and nested local function declarations for high-level C#.
dotPeek 2022.3 comes with support for:
static abstract and static virtual members in interfaces.checked operators.
There is now an option to view decompiled high-level and low-level C# code in the IL Viewer tool window. The decompiled code is still synced to the source code in the code editor.
ngen or
R2R labels are now
displayed next to each assembly's name.
We introduced the ability to show files in a single Preview tab, as you are used to in Visual Studio. It helps when you are looking for something specific and don't want to keep these files open as separate tabs.
If you want to keep the file in a separate tab, click the Keep open icon
on the Preview tab.
To disable the Preview tab, go to
Tools | Options | Tabs and select Allow new files to be opened in the preview tab.
We moved the Quick Find feature from a separate tool window to the text editor tab. Now, when you call Quick Find (Ctrl+F) for a file, the Quick Find pane appears inside the text editor tab for the file.
We also added the F3 and Shift+F3 shortcuts, which allow you to quickly navigate to the next or previous occurrence when you are looking for something using the Quick Find pane.
dotPeek now shows XML doc comments for platform assemblies, including assemblies
whose names differ from the names of the XML documentation files, for example,
System.Private.CoreLib. The path to the XML documentation is now displayed
in the decompiled file’s header.
The Assembly Explorer now supports forwarded types (the TypeForwardedTo attributes). The Locate in Metadata action also works for forwarded types, assembly and module references, and resources.
dotPeek provides initial support for record and record struct types. Support for
the with expression for records, record structs, and structs is also available.
As for other C# features included in this release, the decompiler now supports asynchronous dispose (await using).
We’re continuing to improve our support for reading and decompiling single-file apps:
.json files – for example, the
.runtimeconfig.json file.
Now dotPeek can decompile single-file apps. It also lets you browse through bundled assemblies inside a single-file app just like you are used to doing. It supports single-file formats for the .NET Core 3.1, .NET 5, and the upcoming .NET 6 SDKs.
When working with several tabs at once, you can now pin them. Additionally, the color of a tab indicates the type of code you will see – green represents a metadata view and brown stands for sources from symbol files. The options to pin tabs and to color code them can be disabled in Tools | Options | Environment | Tabs.
We’ve updated the formatter for decompiled code with a set of options to control how the code is presented. You can now set indent style and size, select whether the open brace should be placed on a new line, and if you’d prefer to use expression-bodied members. You can find them in Tools | Options | Decompiler | Code style and formatting.