プロジェクトでMono.Cecilを使用しています。特定のPDBとDLLが一致するかどうかを確認するための機能はありますか?Mono.Cecilを使用して.pdbと.dllファイルが一致するかどうかを確認するにはどうすればよいですか?
ありがとうございます!
プロジェクトでMono.Cecilを使用しています。特定のPDBとDLLが一致するかどうかを確認するための機能はありますか?Mono.Cecilを使用して.pdbと.dllファイルが一致するかどうかを確認するにはどうすればよいですか?
ありがとうございます!
Cecilは、pdbとdllが一致するかどうかをテストするためのAPIを公開していません。ただし、アセンブリを読み込んだときにチェックを行い、シンボルを読み取ろうとします。
しかし、pdbがモジュールにマッチするのはどういう意味ですか?
これは、pdbとモジュールが、まったく同じGUID識別子とpdbのリビジョン番号(ageともいう)を含むレコードを共有することを意味します。
場合によってはGUIDのみをチェックしたい場合もあれば、両方をチェックしたい場合もあります。 Cecil自体は、デフォルトの動作を上書きする方法を提供していませんが、それは非常に簡単な変更です。 PdbReaderの情報源を見てください。
現在、チェックはPopulateFunctionsにあり、現在、pdbの年齢はアセンブリ内のデバッグレコードと同じでなければなりません。それをあなたの好みに合わせて簡単に変更することができます。
また、別のツールを使用することもできます。chkmatchを満足して使用しています。
+1 chkmatch。私は自分自身でオープンCecilをリッピングし、それをWinFormにスラミングすることで、PDB(ソースファイルの場所など)を診断するツールを構築しましたが、Codeはとても醜いので、公開するのは恥ずかしいでしょう。それにもかかわらず、書き込みには30分かかりましたので、簡単に複製できます –