What′s New in dotPeek

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

Free, no license key required
New tooltip in the IL Viewer

IL Viewer update 2019.2

We’ve added a new tooltip with the keyword description to the IL Viewer.

Updated Assembly Explorer 2019.2

We’ve added the following:

  • ‘Summary’ property on the “Properties” tab for nodes. It is available for types, interfaces, and other members that have a corresponding XML Doc.
  • An unmanaged (win32) resources subtree.

Metadata tree updates 2019.2

A couple of updates for the metadata tree:

  • a description for unmanaged resources directories and entries (type, language). 
  • a description for section’s headers.
Dependencies node for NuGet packages

Assembly Explorer update2019.1

The Assembly Explorer adds the Dependencies node for NuGet packages and allows navigating to nuspec files by double-clicking the NuGet node.

Support for more C# 7.x features 2018.3

dotPeek 2018.3 supports decompiling additional C# 7.x language features:

  • Local functions.
  • Pattern matching.
  • System.Enum, System.Delegate, and unmanaged constraints.
  • Indexing fixed fields does not require pinning.

Better support for types with no method’s implementation 2018.2

dotPeek gets better navigation to interfaces, enums, and any types that have no method implementations. Even if there is a PDB file for the library, there is no information about such kind of types, since only types with method implementations have paths mapped to sources in PDB files. Now, dotPeek tries to predict a possible source file for these types using a custom algorithm. If the suspected file is available in the sources, this version will be shown in the editor instead of the decompiled one.

Support for modern C# 2018.1

dotPeek 2018.1 brings several improvements to decompile modern C# features. Now, dotPeek is able to decompile:

  • dictionary initializers.
  • null-conditional operators.
  • async Main method.
  • await inside catch/finally blocks.
  • ref/readonly returns and locals.
  • in parameters.
  • ref/readonly structs.

Open from NuGet package cache 2017.3

dotPeek 2017.3 is able to open any NuGet package stored in the NuGet package cache folder. Unlike the Open from Nuget action, Open from NuGet Packages Cache does not download any package from NuGet gallery, but shows you all locally available ones.

Show PDB content

Show PDB content 2017.3

The Show PDB content action generates a readable XML file from PDB file for selected assembly. The resulting XML file contains:

  • Source file names.
  • Mapping between IL offsets and source lines.
  • Names of local variables.
  • Entry point method, if present.
  • Import scopes.
  • A type of PDB file: Windows/Portable/Embedded.
  • PDB signature.
  • Source server info: SourceLink/SrcSrv.

SourceLink format support 2017.3

SourceLink is a new way of embedding information about an assembly's original source code into the Portable PDB and the Windows PDB formats.

dotPeek and ReSharper now both support SourceLink: if a decompiled assembly was compiled with the /sourcelink: <file> compiler flag and the source_link.json file was generated, dotPeek will now download sources referenced in the PDB or use embedded source files when available.

Navigation and search improvements 2017.2

dotPeek 2017.2 brings a set of navigation and search improvements:

  • You can now search for multiple usages inside your decompiled methods, and use the Find Results window to navigate between them.
  • Go to String allows searching for string literals defined inside attributes. Search for any string in a compiled assembly and navigate to it directly.
  • Presentation of long and multiline strings is improved: when you search for a substring in such strings, dotPeek navigates to the substring position instead of jumping to the start of the string.
Portable PDB support

Support for Portable PDBs 2017.1

dotPeek can now generate not only traditional PDB files which are Windows-only, but also Portable PDB files. The type of the generated PDB is determined automatically and depends on the selected assembly. It is also possible to explore the contents of the Portable PDB file associated with the assembly which is presented in the same way as the assembly metadata. Finally, you can use sources embedded in Portable PDB files for navigation purposes.

Exploring assembly metadata with dotPeek

Exploring assembly metadata 2016.3

dotPeek 2016.3 helps you explore assembly metadata and dig through all items (tables, blobs, strings, etc.) inside it. Under the Metadata node, you can explore values of blob items, PE file headers, usages of metadata table items.

Same as elsewhere in the assembly tree, you can double-click metadata items to decompile and display the corresponding code.

Assembly dependency diagram

Assembly dependency diagram

dotPeek 2016.2 can display the assembly dependency diagram, which extends the family of dependency analysis tools available in dotPeek and ReSharper.

You can invoke the diagram on selected assemblies in the Assembly Explorer and explore connections that are established between the assemblies by virtue of their references.

Improved IL code viewer

Improved IL code viewer

dotPeek 2016.2 improves its IL Viewer in order to display code in a more readable manner:

  • Types, members, type parameters, and local variables, method parameters, labels, commented metadata tokens are now automatically highlighted;
  • Loops can now be distinguished with indents and comments.
Browsing NuGet packages with dotPeek

Browsing NuGet packages

For a long time, opening .nupkg files from disk was the only way to load assemblies from NuGet packages.

In version 2016.1, there are now two more ways: you can find and load NuGet packages (and their dependencies if necessary) from any online package source, or load packages listed in a packages.config file in your Visual Studio project.

dotPeek highlights usages of symbol under the caret

Highlighting of symbol usages

dotPeek learns to automatically highlight usages of the symbol under the caret.

Among other benefits, it is much harder now for obfuscated identifiers to get lost as easily in decompiled code.

Free, no license key required