有没有人知道一个不错的工具可以比较同一个dll的两个不同版本并提取差异?
感谢
答案 0 :(得分:21)
dotPeek。它也是免费的。
对要比较的程序集重复上述操作,然后在diff工具中打开两个文件夹。我使用了WinMerge。
您会注意到绝大多数文件都存在差异。这是因为文件在顶部有评论
// MVID: {some guid here}
您可以在WinMerge中创建一个过滤器来忽略它
^// MVID:
如果您没有更改,它将重新扫描文件夹并忽略以该评论开头的任何行。现在您应该只看到您感兴趣的更改。
答案 1 :(得分:16)
Reflector有一个Diff工具。注意:Reflector现在是付费软件。
答案 2 :(得分:4)
为什么不首先进行反汇编然后进行比较?
答案 3 :(得分:4)
答案 4 :(得分:4)
使用.NET Reflector(只需要免费版)打开dll然后右键单击并选择将它们导出到不同的目录。
然后使用ExamDiff Pro比较目录(您可以获得30天的免费试用版)。您可以浏览子文件夹并根据需要打开每个文件到新的比较窗口(只需在ExamDiff Pro窗口中双击)。 效果很棒!
ExamDiff Pro还有一个Dump PE32插件,可直接在.dll和.exe文件之间进行比较。这有助于查看标题更改并标记二进制差异,但不会为您反编译(因此请使用上面的Reflector方法)。
答案 5 :(得分:0)
微软BCL团队有一个工具可以做到这一点,它叫做LibCheck,可以在这里找到
http://blogs.msdn.com/b/bclteam/archive/2005/03/21/400123.aspx
这是一个旧工具,我不得不使用更高版本的运行时重新编译源代码,但它运行良好并提供有关更改的HTML报告。