dotPeek の新機能

このページでは、dotPeek の最新の更新と変更内容を説明します。

新しい専用の Assembly Diff(アセンブリの差分)ツールウィンドウ

C# 13 のサポート強化と可読性の向上 2025.1

2025.1 リリースではデコンパイラーにいくつかの改良が加えられ、最新の C# 機能のサポートが強化されてコードの可読性が向上しました。 新機能は以下の通りです:

  • required メンバーのサポート。
  • C# 13 で導入された新しい System.Threading.Lock 型のサポートを追加。
  • ref フィールドおよび scoped パラメーター修飾子のサポート。
  • allows ref struct ジェネリックアンチ制約のサポート。
  • ref struct 型に対するパターンベースの using のサポート。
  • 文字列補間のサポート。
  • 可読性を向上させるため、デコンパイルされたコード内の特定の整数定数にコメント付き 16 進数表記が含まれるようになりました。
  • ファイルスコープの名前空間のサポート。
新しい専用の Assembly Diff(アセンブリの差分)ツールウィンドウ

アセンブリマニフェストの IL コード 2024.3

IL Viewer(IL ビューアー)ツールウィンドウに以下を含むアセンブリマニフェストの IL コードが表示されるようになりました。

  • 名前、カスタム属性などのアセンブリとモジュールの情報。
  • 参照先のアセンブリとモジュール。
  • 転送された型。
  • ファイルとリソースのリスト。

この IL コードは、テキストエディター内のアセンブリまたはモジュール属性上、または外部アセンブリの <AssemblyName>.cs ファイル内のどこかにキャレットを置くと表示されます。

プライマリコンストラクターのサポート 2024.3

プライマリコンストラクターを宣言するクラスを操作する際、dotPeek がコンストラクターとそのパラメーターを正しく表示するようになりました。デコンパイルされたコードから直接どのようにオブジェクトがインスタンス化されるかを全体的に把握できます。

全般的な機能強化 2024.2

  • ラムダパラメーター: オプションおよびパラメーター配列のパラメーターを持つラムダのデコンパイルを新たにサポートすることで、デコンパイル済みコードの可読性と正確性を向上させました。
  • ラムダの属性: ラムダ式での属性の処理が改善され、すべての関連するメタデータがデコンパイルされた出力に正確に反映されるようになりました。
  • 保護されたアセンブリ: 保護されたアセンブリをデコンパイルするかどうかを指定する機能が導入され、より包括的にコードを調査できるようになりました。

外部ソースの処理 2024.2

  • SrcSrv と SourceLink を含む PBD: デコンパイラーが SrcSrv と SourceLink の両方を含む PDB ファイルからソースコードへの移動をサポートするようになりました。
  • プリプロセッサディレクティブ: デコンパイラーがターゲットフレームワークまたは関連するアセンブリの Portable PDB のプリプロセッサディレクティブ(NET6_0_OR_GREATER)を正しく認識するようになったため、コードが正確に表現されるようになりました。
  • Open in Browser(ブラウザーで開く)アクション: リポジトリにある型のソースコードや NuGet パッケージとアセンブリのリポジトリに移動できるようになりました。

ビルド構成の検出 2024.2

Assembly Explorer(アセンブリエクスプローラー)ツールウィンドウがアセンブリのビルド構成を検出して提示するようになったため、アセンブリのコンパイルコンテキストに関するより明確なインサイトを得られるようになりました。

新しい専用の Assembly Diff(アセンブリの差分)ツールウィンドウ

新しい専用の Assembly Diff(アセンブリの差分)ツールウィンドウ 2024.1

この dotPeek 2024.1 アップデートでは、新しい Assembly Diff(アセンブリの差分)ツールウィンドウが導入されました。 これに伴い、いくつかの変更が適用されています。

  • アセンブリ、NuGet パッケージ、フォルダー、および .zip アーカイブの比較機能が Assembly Explorer(アセンブリエクスプローラー)から Assembly Diff(アセンブリの差分)ツールウィンドウに移動されました。
  • Diff mode(差分モード)セレクターと Compare(比較)および Diff Options(差分オプション)ボタンが Assembly Diff(アセンブリの差分)ツールウィンドウの Actions(アクション)バーに移動されました。
WebCIL パッケージング形式のサポート

WebCIL パッケージング形式のサポート 2024.1

dotPeek で WebAssembly の WebCIL パッケージング形式がサポートされるようになりました。 このサポートには以下が含まれます。

  • WebCIL のデコンパイル。
  • Assembly Explorer(アセンブリエクスプローラー)で .wasm ファイルを表示する機能。
  • Assembly Explorer(アセンブリエクスプローラー)内の WASM ノードのメタデータサブツリー(WASM および WebCIL ヘッダーを含む)。
C# 言語機能の追加

アセンブリの差分の改善 2023.3

dotPeek 2023.3 では、NuGet パッケージ、フォルダー、および .zip ファイルを比較できるようになりました。

アセンブリの比較機能には、より多くの比較オプションが含まれています。 複数の差分モード(Show all(すべて表示)、Show only differences(差分のみを表示)、Show only signature differences(シグネチャーの差分のみを表示)、Show only public API differences(公開 API の差分のみを表示))から選択できます。 また、差分でメンバー/属性の順序の違いや null 許容参照型のアノテーションの違いを無視するかどうかを指定できます。

C# 言語機能の追加

Assembly Explorer の更新 2023.3

  • Assembly Explorer で NuGet パッケージを参照する際、対象の NuGet パッケージ内に含まれるすべてのファイルとフォルダーも表示できるようになりました。
  • Win32 リソースノードとそのサイズとタイプ(判定できる場合)をノード表現ツリーと Properties(プロパティ)ペインで表示できるようになりました。

その他の更新 2023.3

  • Win32 文字列テーブルリソースをデコードする機能が導入されました。
  • dotPeek がアセンブリ/非アセンブリの Properties(プロパティ)ペイン内で開いているファイル、バンドル内のファイル、アーカイブ、NuGet パッケージ、比較対象のアセンブリ、および Win32 リソースのサイズを表示するようになりました。
  • アセンブリの Authenticode 署名を検証できるようになりました。
  • 明示的な #nullable disable ディレクティブがデコンパイルされたソースに表示されます。
C# 言語機能の追加

アセンブリの差分 2023.2

dotPeek 2023.2 では 2 つのアセンブリを詳細に比較する方法が導入されています。 この機能は特定のアセンブリの 2 つのバージョンの違いを精査し、より新しいバージョンに混入している可能性のある潜在的な脆弱性を探す場合に特に便利です。

詳細については、こちらをクリックしてください。

IL Viewer ツールウィンドウ 2023.1

dotPeek の 2023.1 バージョンには、IL Viewer ツールウィンドウに対して次の改善が加えられています。

  • IL Viewer が低レベル高レベルの両方の C# コードに元のソースコードで使用されていた変数名を表示するようになりました。また、高レベルの C# コードではローカル変数の元のタプル要素名も表示されるようになりました。
  • 中間言語(IL)コードでのローカル変数宣言では、コメント付きのタプル要素名が PDB/デコンパイラーによって提供されるようになりました。
  • フィールドとプロパティのイニシャライザー、反復子内のステートメント、async メソッド、ラムダ式、ローカル関数、高レベル C# のローカル関数とネストされたローカル関数宣言の同期が改善されました。