Compare compiled .NET assemblies?

Are there any good programs to compare with .NET assemblies?

For example, I have HelloWorld.dll (1.0.0.0) and HelloWorld.dll (2.0.0.0) and I want to compare the differences, how can I do this?

I know that I can use .NET Reflector and use the Assembly Diff plugin. Are there any other good tools for this?

+46
debugging c # reverse-engineering
Mar 16 '09 at 22:46
source share
6 answers
+40
Mar 16 '09 at 23:00
source share

Two ways.

You can use ILDASM and classify classic instruments.

Or you can use NDepends, which will cost for this feature.

[Piece to C # bloaters ..]

+24
Mar 16 '09 at 22:59
source share

I just had to compare two versions of the same DLL having the same version (I needed to implement a small fix and deploy the DLL in production, but I wanted to make sure that no other changes occurred in the code), Ideally, I would like so that the Assemby Diff add-in shows me the difference, but it doesn't work (she thinks I'm comparing the DLL with myself). So here is what I did:

  • Two folders have been created for storing disassembled source files.
  • Reflector Export is used (from the context menu) to generate source files from each DLL in the folders created in the previous step.
  • Used the free DiffMerge tool to compare two directories; the tools showed me the changed files and the difference.

This is a little shreds, but it seems to work. I would like the Diff add-in to be handled.

UPDATE: The latest version of the Diff add-in for the assembly should fix the problem of comparing two versions of the same assembly. Give it a try.

+11
Jul 20 '09 at 22:09
source share

The NDepend tool offers many features for handling .NET code diff. Disclaimer: I am one of the developers of this tool.

The Change Search panel is used to view assembly code. Note:

  • You can connect to NDepend with any code comparison tool used in the menu. Compare the older and newer version of the source file.
  • If you do not have source code, only source assemblies, there is the option Comparison of the older and newer versions, disassembled with Reflector

NDepend Search by Diff Panel

Please also note that the screenshot creates a CQLinq code to view diff.

from m in Application.Methods where m.CodeWasChanged() select new { m, m.NbLinesOfCode } 

By default, there are many other default queries and rules that allow you to browse diff diff code in a smart way.

+7
Aug 28 '10 at 14:15
source share

Another LibCheck option from Microsoft.

A pretty old console tool to get the public diff API. I could not work without debugging and redirecting to a newer version of .net. However, this gave me very clear results, and I'm going to use it later.

Here is an article with screenshots.

+1
Aug 08 '15 at 11:43 on
source share

Java has a nice option: Semantic Diff utilities

-8
Mar 16 '09 at 23:01
source share



All Articles