What′s New in dotPeek

This page outlines what has changed in recent versions of dotPeek.

Download dotPeek

Free, no license key required

General enhancements

2024.2
  • Lambda parameters: We’ve introduced support for decompiling lambdas with optional and parameter-array parameters, enhancing the readability and accuracy of decompiled code.
  • Attributes on lambdas: The tool now offers improved handling of attributes on lambda expressions to ensure that all relevant metadata is accurately reflected in the decompiled output.
  • Protected assemblies: We’ve introduced the ability to specify whether you’d like to decompile protected assemblies, allowing more comprehensive code exploration.

Handling of external sources

2024.2
  • PDB with SrcSrv and SourceLink: The decompiler now supports navigating to sources from PDB files containing both SrcSrv and SourceLink.
  • Preprocessor directives: The decompiler now correctly recognizes preprocessor directives (like NET6_0_OR_GREATER) from the target framework or Portable PDB of the associated assembly, ensuring accurate code representation.
  • Open in Browser action: You can now navigate to the source code in the repository for types or to a repository for NuGet packages or assemblies.

Build configuration detection

2024.2

The Assembly Explorer tool window now detects and presents the build configuration of assemblies, providing clearer insights into the assembly’s compilation context.

A new dedicated Assembly Diff tool window

2024.1

The 2024.1 update introduces the new Assembly Diff tool window to dotPeek. There are a couple of changes that come with it:

  • The ability to compare assemblies, NuGet packages, folders, and .zip archives has been moved from the Assembly Explorer to the Assembly Diff tool window.
  • The Diff mode selector and the Compare and Diff Options buttons have been relocated to the Actions bar of the Assembly Diff tool window.

Support for the WebCIL packaging format

2024.1

dotPeek now supports the WebCIL packaging format for WebAssemblies. The support covers:

  • Decompilation for WebCIL.
  • The ability to view .wasm files in the Assembly Explorer.
  • Metadata subtrees for WASM nodes in the Assembly Explorer, including WASM and WebCIL headers.

Assembly diff improvements

2023.3

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.

Assembly Explorer updates

2023.3
  • When exploring NuGet packages in the Assembly Explorer, you’ll now be able to see all files and folders contained inside those NuGet packages.
  • Win32 resource nodes, including their size and type (if these can be determined), can now be viewed in the node presentation tree and the Properties pane.

Other updates

2023.3
  • The ability to decode Win32 string-table resources has now been introduced.
  • dotPeek now displays the sizes of open files inside the Properties pane for an assembly/non-assembly, files inside bundles, archives, NuGet packages, compared assemblies, and Win32 resources.
  • Assembly authenticode signature validation is now available.
  • Explicit #nullable disable directives are shown in decompiled sources.

Assembly diff

2023.2

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.

IL Viewer tool window

2023.1

The 2023.1 version of dotPeek contains the following improvements for the IL Viewer tool window:

  • Local variable names will now be used for both low-level and high-level C# code and variable tuple element names for high-level C# code as in the original source.
  • Commented tuple element names will be rendered from the PDB/decompiler for local variable declarations in intermediate language (IL) code.
  • Synchronization has been improved for field and property initializers, statements inside iterators, async methods, lambdas, local functions, and local functions and nested local function declarations for high-level C#.

More C# languages features

2022.3

dotPeek 2022.3 comes with support for:

  • static abstract and static virtual members in interfaces.
  • generic attributes.
  • user-defined checked operators.
  • unsigned right shift operator.

High-level and low-level C# code in IL Viewer

2022.2

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.

ReadyToRun and NGen assemblies in Assembly Explorer

2022.2
  • The way ReadyToRun (R2R) and NGen assemblies are presented in the Assembly Explorer has been improved. A small processor symbol icon and ngen or R2R labels are now displayed next to each assembly's name.
  • The Metadata tree has the ReadyToRun header.
  • The Properties window has the ReadyToRun section.

Preview tab

2022.1

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.

Quick Find pane inside the text editor

2022.1

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.

XML doc comments

2022.1

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.

Updates to Assembly Explorer

2022.1

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.

Other updates

2022.1
  • We’ve turned off navigation retargeting in the Metadata view.
  • We’ve added decoded / raw blob presentations in the properties for blob nodes.
  • We’ve improved PDB navigation for types without sequence points, for example, interfaces and enums.

Support for records and record structs

2021.3

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).

Extended support for single-file apps

2021.3

We’re continuing to improve our support for reading and decompiling single-file apps:

  • You can see the content of bundled .json files – for example, the .runtimeconfig.json file.
  • You can view a list of all embedded files along with some technical information about the single-file app (header format version and ID) by clicking on the root node in the Assembly Explorer.
  • You can extract all the files to a folder (using the Extract Bundle Content to Folder action from the context menu) or one particular file from the bundle as an external file (using the Extract to File action in the context menu).

Support for single-file applications

2021.2

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.

Tab management

2021.1

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.

Code Styles and Formatting

2021.1

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.

Download dotPeek

Free, no license key required