19

JetBrains dotPeek 1.4 シンボル サーバーを使用しようとしていますが、次の dotPeek ステータスで失敗するサード パーティのアセンブリがいくつかあります。

Pdb has not been generated because assembly does not contain debug directory

CFF エクスプローラーを使用して、これらのアセンブリの "Debug Directory" Portable Executable (PE) ヘッダー値が空であることを発見しました。

PE を編集して Debug Directory ヘッダー値を追加する (簡単な) 方法はありますか?

4

1 に答える 1

6

de4dot は、dotPeek から見て無効な .net 実行可能モジュールを作成します。ただし、de4dot ではなく、dotPeek の問題です。しかし、dotPeek のソースがないため、相互運用性を実現するために代わりに de4dot を変更する必要があります。変更: de4dot.code/AssemblyModule.cs モジュールの追加

writerOptions.WritePdb = true;
module.CreatePdbState();

de4dot.code.AssemblyModule.Save 関数に、exe モジュールに有効な pdb 関数を入力します。

時間を節約するために、私のパッチで de4dot プロジェクトを使用できます 。結果の PDB を削除して、dotPeek を再度実行するだけです。それは完璧に動作します。次のようなものを使用します: de4dot.exe -f filein.exe -o fileout.exe -fpdb

于 2015-10-25T17:31:28.377 に答える