如何使用Mono.Cecil检查.pdb和.dll文件是否匹配?

Vit*_*lyB 4 .net mono.cecil

我们在项目中使用Mono.Cecil.它是否具有允许我检查特定PDB和DLL是否匹配的任何功能?

谢谢!

Jb *_*ain 5

Cecil不公开API来测试pdb和dll是否匹配.但是,它会在您读取程序集时进行检查,并尝试读取其符号.

但是,对于匹配模块的pdb来说,它究竟意味着什么?

这意味着pdb和模块共享一条记录,其中包含完全相同的GUID标识符和pdb的修订号(也称为age).

有时您只想检查GUID,有时您想要检查两者.Cecil本身并没有为您提供覆盖默认行为的方法,但这是一个非常容易的变化.看看PdbReader的来源.

目前检查是在PopulateFunctions中,我们目前没有强制要求pdb的年龄必须与程序集中的调试记录相同.您可以根据自己的喜好轻松改变它.

或者你可以完全使用另一种工具:我一直在使用chkmatch满意.