What's new in dotPeek
Decompiler improvements: generic attributes,
static virtualmembers in interfaces, user-defined checked operators, unsigned right-shift operator.
Dedicated presentation features for ReadyToRun and NGen assemblies in Assembly Explorer window.
Decompiled high-level/low-level C# code in the IL Viewer.
XML Doc comments for platform assemblies, including assemblies with names that differ from the names of the XML documentation files (for example
XML documentation in decompiled / metadata view file header.
Forwarded types in the Assembly Explorer window
Locate in Metadata action now also works for forwarded types, assembly/module references, and resources
Improved PDB navigation (sources from symbol files) for types without sequence points such as interfaces and enums.
Ability to disable retargeting in Metadata view navigation.
Metadata tree improvements: decoded + raw blob presentation in Properties window
By default, all new documents are displayed in the preview tab.
Improved UX for finding text in the current document (Ctrl+F).
Decompiler improvements: support for async disposable, records, and record structs
Single-file/native support improvements:
Ability to open non-assembly bundled files and files inside the App Host node, for example .runtimeconfig.json.
Ability to extract bundle file entry to file and extract bundle content to folder
Assembly info for native app host (assembly info of corresponding managed assembly)
Bundle info for single-file app (list of embedded files, header format version, ID)
Reworked UI and a new shortcut Control+Alt+Shift+C for copying code references.
Highlighting of logical and conditional operators under the caret.
Single-file apps support (executables published with the 'Produce single file' option, both self-contained and framework dependent) for .NET Core 3.0, .NET 5, and .NET 6 preview (bundle header version 1.0, 2.0 and 6.0).
Bundle header node inside Metadata subtree for single-file bundles.
Platform-specific executables (app host; 'Produce single file' false) can be added to the Assembly explorer. The corresponding managed assembly will be shown inside the app host node.
Async streams support (
await foreach) are supported by the decompiler.
Color coding of code viewer tabs according to their code presentation mode.
Code style options for decompiled code.
Private Source Link support.
Decompiler improvements: Static local functions, top-level statements, attributes on local functions, readonly instance members on structs.
IL Viewer window: improvements in synchronization and context highlighting.
Assembly Explorer window: top-level entry point item (presentation, double-click/context menu navigation, properties).
Go to File Member in library code retains the presentation mode for external sources (decompiled code / code from symbol files / metadata view).
Metadata tree: add containing type info to presentation of metadata token nodes if this info is not evident.
Go To Metadata Token: improved item presentation (token; origin assembly for *Ref tokens).
A new action to locate symbols in metadata tree.
Decompiler: support of expression-bodied members, throw expressions, default parameters, and named arguments.
Decompiler: improved tuple component names support.
Decompiler: nullable reference types (in declarations, not in method bodies).
Decompiler: default interface members.
Decompiler: field-targeted attributes for auto-implemented properties and field-like events.
IL View: support for custom attributes in interface implementations and generic parameter constraints (for example, the compiler can apply
TupleElementNamesAttributeto these entities).
Decompilation of tuples, deconstruction, discards.
Tooltips with keyword description in IL Viewer window
Go to File Member now also searches for textual matches in the current document.
Win32 resources subtree in Assembly Explorer window
Metadata tree improvements: description for unmanaged (win32) resources directories and entries (type, language), description for section headers.
Metadata tree improvements:
Navigation to source from a document token node (portable pdb subtree).
Navigation to pdb content .xml from a portable pdb subtree root node.
Navigation to nuspec (double-click a nuget node in the Assembly Explorer window)
Dependencies node for NuGet package in the Assembly Explorer window.
Local functions decompilation (C# 7.0)
Pattern matching decompilation: const pattern, type pattern, type patterns in the case clauses (predicates and discards are supported) (C# 7.0)
System.Delegateand unmanaged constraints (C# 7.3)
fixedfields indexing without pinning (C# 7.3)
- Copy code reference to clipboard
Search Everywhere can now successfully parse function signatures copied and pasted from dotTrace or Visual Studio’s Call Stack window for further searching.
Improved navigation to interfaces, enums, and any types that have no method implementations.
Decompilation support for the following C# constructs:
Indexer (dictionary) initializers
Metadata tee improvements:
Metadata subtree (headers / directories) for files that are not supported by the decompiler.
Improved presentation and new filed descriptions in headers.
Absolute offsets for metadata tables, metadata table rows, heap items (the offsets are displayed in the Properties window).
File description (Version Info) for assemblies in the Properties window.
Load assemblies from local NuGet package cache.
Explore assembly PDB contents in a readable XML file.
Source Link support in Windows PDB (earlier it only worked for Portable PDB).
If any of the navigation and search commands results in multiple matches inside a single method, dotPeek now displays all of them in the search results .
The results of Search Everywhere Control+N now include occurrences of the search query in strings.
Improvements in Go to String Ctrl+Alt+T: search in attributes, better presentation and navigation directly to the search query occurrence in long and multiline strings.
More features for Portable PDB in the Metadata tree.
Ability to retrieve assembly's original source code, which is referenced in the Portable PDB using Source Link.
Proper decompilation of
Improvements and fixes for displaying and navigating IL code.
Ability to explore portable PDB metadata.
Portable PDB generation (Symbol Server, Generate PDB).
Filters in Search Everywhere.
Metadatanode in the Assembly Explorer helps explore assembly metadata.
IL Viewer window improvements: when you set the caret at a code symbol or instruction, all usages of this item are highlighted; loops in your code can be distinguished by corresponding indents and comments.
dotPeek automatically highlights usages of the symbol under the caret.
Extension methods rendered as instance methods in decompiled code.
Viewing intermediate language (IL) side by side with decompiled C# code.
Find Usages works asynchronously, letting you keep on working with the decompiler while it executes time consuming usage search in the background.
dotPeek supports the same set of color themes as that of Visual Studio with the ability to synchronize your color scheme preference with Visual Studio settings.
Usage-aware behavior of the Go to Declaration command.
Ability to decompile assemblies build with Roslyn
Ability to decompile the following C# 6.0 features: exception filters, auto-properties with initializers
Ability to display metadata tokens in the Assembly Explorer and as comments in decompiled code.
Ability to navigate to metadata tokens.
Go to String command now lets you find string literals in constant string fields and in default values of string parameters.
Navigate to Exposing API command that allows you to navigate from a type to all places in the currently loaded assemblies where you can get an instance of this type.
Go to String command.
Go to Action command that helps you quickly find and apply any of dotPeek's actions.
Ability to search preferences in the Options dialog
Ability to generate PDB files for .NET assemblies which were compiled with the
- Use dotPeek as a symbol server
Process Explorer window that provides you with the list of currently running processes and allows exploring their modules and decompiling those of them that are .NET assemblies.
Project/PDB Generation Status window.
Search/filtering in the Assembly Explorer window, Hierarchy window, and Find Results window.
Decompiler improvements: Async methods and lambdas, System.Linq.Expressions, Field-like events
Ability to export assemblies to Visual Studio projects.
- Search Everywhere/Go to Type