关于改进我的构建和部署例程,我希望比较两个不同程序集的代码。我无法比较文件大小和创建日期,或程序集的二进制内容,因为这些可能会有所不同,即使程序集在逻辑上是相同的。
在之前的项目中,我使用了ildasm.exe并为每个程序集生成了一个文本文件,并在稍作修改后进行了比较,但我宁愿在c#代码中执行此操作而不运行Process.Start()。
作为例子,我希望做这样的事情:
public bool AssemblyComparer(string path1, string path2)
{
var text1 = MagicLibrary.Disassemble(path1);
var text2 = MagicLibrary.Disassemble(path2);
return text1.Equals(text2);
}
有关如何执行此操作的任何建议将不胜感激。
答案 0 :(得分:1)
我还没有使用它但据我所知Mono.Cecil是一个库,您可以使用它从程序集中检查程序中的IL代码。见Mono.Cecil by jbevain。但我认为它不像您在代码片段中那样易于使用。