Reflector.Diff: Always comparing to the self


I'm trying to compare two versions of the same assembly, both located on a remote share (I'm using a UNC path). I open one assembly in Reflector and use the Browse buttons of the Diff screen and dialog boxes to locate the second assembly which resides in a different folder. When I select the second assembly and click OK, Diff displays "Comparing to self" in the top label and does not show any information about the second assembly. I must mention that both assemblies have the same version, but they are in fact different. I thought that it could be an issue with a UNC path, so I copied the second assembly to my desktop and renamed it, but still got the same result. If I pick a system assembly, Diff works as expected.


thoughtcriminal wrote Jun 11, 2008 at 1:32 PM

I get the same result with the practically the same scenario (I'm not loading from UNC, but local hard drive).
Anyone knows how to change the version of assembly?

wrote Jun 11, 2008 at 1:32 PM

thoughtcriminal wrote Jun 11, 2008 at 1:48 PM

Ok, I just confirmed that the problem 99,99% is caused by assembly version number.
I used Reflexil addon for .NET Reflector to update the assembly version number. After I saved Reflector.Diff started working as expected. I haven't actually got into the details of it but possibly Reflexil does many changes (besides the version number) to the original assembly so probably you should expect some changes like references order change, etc.

thoughtcriminal wrote Jun 11, 2008 at 5:53 PM

Another comment here is that although Reflector.Diff is very nice I found it inconvenient for one of 2 typical scenarios:
1) you are looking at a specific place in code (typically a method)
2) you are looking at what changes are in the whole assembly
Re 1) Reflector.Diff works like charm
Re 2) It's much better to export certain assembly using the built-in Reflector export feature which will produce "a project" for you and then you should be able to use any file/directory comparison tool you prefer to use (I recommend open-source WinMerge or built-in comparison tool from Total Commander)

wrote Jun 12, 2008 at 11:53 AM

bemar wrote Feb 24, 2009 at 6:58 AM

Here's my workaround. I recompiled the latest assembly and increment the version number in AssemblyInfo.cs (just to make it different from the old one). Add the two assemblies (old and new version) in Reflector. Select the first assembly then click the Tools->Assembly Diff submenu. There you go.

wrote Jun 4, 2009 at 8:08 PM

wrote May 20, 2010 at 8:29 PM

wrote Feb 22, 2013 at 1:03 AM