JetBrains dotPeek Changelog

What's new in JetBrains dotPeek 2024.1 Build 2024.1.0.65536

Apr 10, 2024
  • dotPeek 2024.1:
  • A new dedicated Assembly Diff tool window
  • Support for the WebCIL packaging format for WebAssemblies.

New in JetBrains dotPeek 2023.2.1 Build: 2023.2.1.65536 (Aug 25, 2023)

  • SWEA Razor: Ambiguous Invocation
  • CSHTML inspection false positive
  • Escape pasted text - broken for raw string literals
  • Unexpected token in valid .cshtml view
  • Slow Project Saving
  • One or more errors occurred. (Entity Framework SourceType/TargetType mismatch.

New in JetBrains dotPeek 2023.2 Build: 2023.2.0.65536 (Aug 3, 2023)

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

New in JetBrains dotPeek 2023.1 Build 2023.1.0.65536 (Apr 5, 2023)

  • The 2023.1 version of dotPeek contains the following improvements for the IL Viewer tool window:
  • The IL Viewer shows variable names as they were used in the original source code in low-level and high-level code. It also shows original tuple element names for local variables in high-level code.
  • 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 nested local function declarations for high-level C#.

New in JetBrains dotPeek 2022.2.2 Build 2022-08-22 (Aug 22, 2022)

  • High-level and low-level C# code in IL Viewer:
  • 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:
  • 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.

New in JetBrains dotPeek 2022.2.1 Build 2022-08-08 (Aug 11, 2022)

  • dotPeek can show you decompiled high-level and low-level C# code in addition to the IL code in the IL Viewer tool window. The decompiled code is still synced to the source code in the code editor. When you scroll in the editor, the selected presentation in the IL Viewer tool windows scrolls as well. If you focus on a code statement in the editor, dotPeek highlights the corresponding code section in the IL Viewer.
  • We’ve also added support for ReadyToRun and NGen assembly support in the Assembly Explorer.

New in JetBrains dotPeek 2022.1 Build 2022.1.0.65536 (Apr 19, 2022)

  • We introduced the ability to show files in a single Preview tab, as you may be used to in Visual Studio.
  • We moved the Quick Find feature from a separate tool window to the text editor tab.
  • dotPeek now shows XML doc comments for platform assemblies, including assemblies whose names differ from the names of the XML documentation files.
  • 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.

New in JetBrains dotPeek 2021.3.3 Build 2022.01.26.131358 (Jan 31, 2022)

  • Provides initial support for record and record struct types. Support for the with expression for records, record structs, and structs is also available.
  • The decompiler now supports asynchronous dispose (await using).
  • We’re continuing to improve our support for reading and decompiling single-file apps.

New in JetBrains dotPeek 2021.3 (Dec 8, 2021)

  • Support for records and record structs:
  • 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:
  • 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).

New in JetBrains dotPeek 2021.2.2 (Oct 13, 2021)

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

New in JetBrains dotPeek 2021.1 (Apr 12, 2021)

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

New in JetBrains dotPeek 2020.3 (Dec 14, 2020)

  • Most updates in this release of dotPeek have to do with C# support and data presentation:
  • More C# features handled, including static local functions, attributes on local functions, and init-only setters.
  • A <Top-level Entry Point> node in Assembly Explorer to present the top level code.
  • In IL Viewer, there’s new context highlighting for the custom attribute owner, and improved highlighting for function exits.
  • A Locate in Metadata action for declarations and usages in the source code or IL code and for items in Assembly Explorer.
  • Support for Private Source Link.

New in JetBrains dotPeek 2020.2 (Aug 13, 2020)

  • Improved NuGet support 2020.2
  • This release brings better support for C# language features:
  • NuGet v3 package feeds are now supported in Open from NuGet, Open from NuGet packages cache, and Open NuGet packages.config.
  • Items with similar names are now collapsed in the Open from NuGet and Open from NuGet packages cache dialogs.
  • NuGet packages are sorted alphabetically.
  • dotPeek continues to improve its support for the most recent versions of C#, and the new release brings:
  • Expression-bodied members.
  • Throw expressions.
  • Default parameters and named arguments.
  • NullablePublicOnly attribute.

New in JetBrains dotPeek 2020.1.4 (Jul 9, 2020)

  • This release brings better support for C# language features:
  • Support for nullable reference types (NRT) has come to the decompiler. Please note that this only works in declarations, not in the bodies of methods.
  • We’ve added support for decompiling the default members of interfaces and Auto-Implemented Property Field-Targeted attributes.
  • We’ve improved support for decompiling tuple component names.

New in JetBrains dotPeek 2020.1 (Apr 16, 2020)

  • What's new:
  • Nullable Reference Types support 2020.1
  • This release brings better support for C# language features:
  • Support for nullable reference types (NRT) has come to the decompiler. Please note that this only works in declarations, not in the bodies of methods.
  • We’ve added support for decompiling the default members of interfaces and Auto-Implemented Property Field-Targeted attributes.
  • We’ve improved support for decompiling tuple component names.
  • IL Viewer 2020.1
  • The Intermediate Language (IL) Viewer supports custom attributes for interface implementations and generic parameter constraints. For example, a compiler can apply a NullableAttribute and TupleElementNamesAttribute to these entities.

New in JetBrains dotPeek 2019.3 (Dec 11, 2019)

  • Support for more C# 7 features:
  • dotPeek 2019.3 supports decompiling additional C# 7 language features:
  • Tuples.
  • Deconstruction.
  • Discards.
  • Support for symbol packages:
  • dotPeek can now navigate to the external sources of NuGet packages that have a source symbols package (.snupkg).

New in JetBrains dotPeek 2019.2 (Aug 8, 2019)

  • IL Viewer update:
  • We’ve added a new tooltip with the keyword description to the IL Viewer.
  • Metadata tree updates:
  • A couple of updates for the metadata tree:
  • A description for unmanaged resources directories and entries (type, language).
  • A description for section’s headers.
  • Updated Assembly Explorer:
  • 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.

New in JetBrains dotPeek 2019.1 (Apr 30, 2019)

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

New in JetBrains dotPeek 2018.2 (Aug 22, 2018)

  • Better support for types with no method’s implementation:
  • 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.

New in JetBrains dotPeek 2018.1 (Apr 16, 2018)

  • dotPeek 2018.1 brings several improvements to decompile modern C# features. Now, dotPeek is able to decompile:
  • async Main method.
  • dictionary initializers.
  • null-conditional operators.
  • await inside catch/finally blocks.

New in JetBrains dotPeek 2017.3.3 (Mar 2, 2018)

  • Open from NuGet package cache:
  • 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:
  • 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:
  • 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.

New in JetBrains dotPeek 2017.3.2 (Feb 23, 2018)

  • This page outlines what has changed in recent versions of dotPeek. Highlights include support for Portable PDB files and SourceLink, a metadata viewer, an assembly dependency diagram and navigation improvements.

New in JetBrains dotPeek 2017.2.1 (Sep 29, 2017)

  • 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.
  • SourceLink format support:
  • SourceLink is a new way of embedding information about an assembly's original source code into the PortablePDB format.
  • 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 PortablePDB or use embedded source files when available.

New in JetBrains dotPeek 2016.1.2 (Jul 8, 2016)

  • 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.
  • 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.
  • IL code viewer:
  • In one of the most anticipated developments, you can now navigate to IL code from any point in decompiled C# code.
  • IL code is shown in a separate tool window that is synchronized with the main code viewer.
  • Also, you can opt to show IL code as comments to decompiled C# code, which effectively merges its default text viewer and the normally separate IL Viewer window, all in one view.
  • dotPeek can display IL code both for decompiled code and for source code reproduced from symbol files.
  • Color schemes:
  • In another considerable change, dotPeek now supports the same set of color themes as Visual Studio does.
  • For example, you can select Blue or Dark theme, or choose to synchronize your color scheme preference with Visual Studio settings.
  • Asynchronous usage search:
  • dotPeek has introduced the same non-modal, async Find Usages mechanic that has been available in recent versions of ReSharper. The new usage search architecture lets you keep on working with the decompiler while it executes a lengthy usage search in the background.

New in JetBrains dotPeek 1.2 Build 1.2.1.226 (Jul 16, 2014)

  • Highlights of this update include:
  • dotPeek can be used as a symbol server and provide Visual Studio debugger with the information required to debug assembly code. Not only can dotPeek generate source files on debugger's request, with dotPeek you can generate PDB files manually and see the progress in a dedicated tool window.
  • Process Explorer window that provides you with the list of all currently running processes and allows exploring their modules and decompiling those of them that are .NET assemblies.
  • Quick search and node filtering in Assembly Explorer with lowerCamelHumps supported.
  • Please download dotPeek 1.2 for a better decompilation and debugging experience!

New in JetBrains dotPeek 1.1 Build 1.1.1.33 (Aug 9, 2013)

  • Export assembly to project:
  • Based on high demand, we have enabled saving decompiled assemblies as Visual Studio projects.
  • After generating the projects from decompiled sources, you can now browse projects (.csproj files) and everything that's included in them without leaving dotPeek.
  • Bookmarks:
  • Present in ReSharper for quite a long time, bookmarks have also arrived in dotPeek. Bookmarks let you drop a numbered marker at any position in the code viewer, and jump back at any time.
  • You can create up to 10 numbered bookmarks, and unlimited unnumbered bookmarks.
  • Preserving state between launches:
  • dotPeek has become way better in terms of preserving its state between sessions. This includes restoring the state of window layout and active tool windows, as well as lists of loaded assemblies and recently opened files.
  • BAML decompilation:
  • If you're faced with a compiled WPF app, you can now easily look at its XAML UI definitions. The generated XAML code is enabled with all the navigation and search features that you would expect if you're a ReSharper user.
  • Decompilation improvements:
  • Multiple decompiler improvements include better support for async methods, lambda and LINQ expressions, as well as field-like events.
  • Navigation improvements:
  • Following the footsteps of ReSharper 8, dotPeek 1.1 includes Go to Everything, a navigation command that enables navigating to either file, symbol or type within one menu.
  • New distribution options:
  • In addition to the .msi installer, dotPeek is now also distributed as 32-bit and 64-bit executables, which supersede the previously available .zip archive distribution.