Reflector Diff AddIn

This is an addin for Reflector that allows you to compare two assemblies and view the differences between them.
 
UPDATE: 0.80 has been released, containing a few fixes, and support for version 5.0 of Reflector. A big thank you to Richard Childress for tracking down a problem with arrays.
 

Credit To

Michael Potter for his brilliant article on creating a Diff Engine.
Lutz Roeder for all the help he's given me in getting this thing to work.
Denis Bauer's FileDisassembler which showed me the right way to handle namespaces.
 

Installation

Download the Reflector Diff Zip, extract the two DLL's into the same directory as Reflector (otherwise it won't work). Go to View|Add-Ins in Reflector, and Add the Reflector.Diff.dll.
 

Usage

Select a tree node in the Reflector main window, and then choose Tools|Assembly Diff from the menu. If you've selected a Framework DLL, it should come up with the Diff automatically. If not, just click the  button, which will bring up an Assembly selection screen. From this point on, the Diff utility will remember the match you have made, and will always select that destination assembly when you next select the source assembly. Well, actually it stores a total of 20 matches, but you can increase the number by going into options ().

I have also (finally) implemented recursive exports, which can be enabled by selecting the "Export current node and all subnodes" option on the Export tab in the Options screen. Then just use the export button () to create your export

Screenshots

Source Code

I've had some requests to post the source of this. So here it is. Be warned that the source is fairly uncommented, especially compared to my usual standards. Dunno why, that's just the way it happened. Also, some of the source is not mine, so if you're going to use any of it in your own projects, drop me a line telling me which bits, and I'll let you know who to get permission from.