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

时间:2012-01-30 16:30:15

标签: .net mono.cecil

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

谢谢!

1 个答案:

答案 0 :(得分:5)

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

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

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

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

的来源

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

或者您可以完全使用其他工具:我一直在使用chkmatch