2009-02-26 4 views

Antwort

16

Reflektor hat ein Diff Werkzeug.

+0

gute Sachen, danke – flesh

+0

Funktioniert das immer noch mit der neuesten Reflektor-Version? Mine ist abgestürzt und hat ein Diff gemacht. – mkmurray

+0

Ich konnte das nicht mit der neuesten Version (6.5) arbeiten, was schade ist, weil es großartig klingt. – theChrisKent

4

Warum nicht erst zerlegen und dann vergleichen?

+1

Mit Reflector exportiert, dann verglichen die Verzeichnisse mit Beyond Compare. Einfach toll! :) –

4

Verwenden .NET Reflector (Free-Version ist alles, was Sie benötigen), um die DLLs zu öffnen dann mit der rechten Maustaste und wählen sie exportieren Verzeichnisse zu trennen.

Dann verwenden Sie ExamDiff Pro, um die Verzeichnisse zu vergleichen (Sie können eine 30-Tage-Testversion erhalten). Sie können durch die Unterordner navigieren und jede Datei nach Bedarf in ein neues Vergleichsfenster öffnen (Doppelklicken Sie einfach im ExamDiff Pro-Fenster). Funktioniert super!

ExamDiff Pro verfügt auch über ein Dump PE32-Plugin, das einen direkten Vergleich zwischen .dll- und .exe-Dateien ermöglicht. Dies ist hilfreich, um Header-Änderungen zu betrachten und Binärdifferenzen zu markieren, wird diese aber nicht für Sie dekompilieren (verwenden Sie dazu die obige Reflector-Methode).

+0

versuchte, nah es funktioniert nicht. Ich kann den Code im Reflektor gut sehen. aber der Export gibt 134 Fehler (s). Fertig. – hamish

17

dotPeek von JetBrains kann auch verwendet werden. Es ist auch kostenlos.

  • Öffnen Sie die Montage bis in dotPeek
  • Wählen Sie die Baugruppe
  • Datei -> Exportieren
  • Wählen Sie einen Speicherort auf der Festplatte

Wiederholen Sie für die Montage die oben projizieren Sie wollen Um zu vergleichen, öffnen Sie die zwei Ordner in einem Diff-Tool. Ich habe WinMerge verwendet.

Sie werden feststellen, dass die große Mehrheit der Dateien Unterschiede aufweist. Dies liegt daran, dass die Dateien einen Kommentar an der Spitze haben wie diese

// MVID: {some guid here} 

Sie einen Filter in WinMerge erstellen kann es

  • Werkzeuge zu ignorieren -> Filter ...
  • Goto die " Leitungsfilter“Registerkarte
  • Fügen Sie die folgenden Filter ^// MVID:

Wenn Sie in Ordnung der Änderungen, es werden die rescan Ordner und ignorieren Sie alle Zeilen, die mit diesem Kommentar beginnen. Jetzt sollten Sie nur die Änderungen sehen, an denen Sie interessiert sind.

+2

Dieser funktioniert super und ist völlig kostenlos. Möglicherweise müssen Sie jedoch weitere Filter hinzufügen. Ich musste auch '^ // Assembly location:' hinzufügen. Danke Colin – mariozski

+0

Achten Sie darauf, dass Sie auf der Registerkarte "LineFilters" auf die Option "Line Filter aktivieren" klicken. Ich vermisste es ursprünglich und verbrachte zehn Minuten damit, mich am Kopf zu kratzen. –

0

Das Microsoft BCL-Team haben ein Werkzeug, um dies zu tun, es LibCheck genannt und hier gefunden werden kann

http://blogs.msdn.com/b/bclteam/archive/2005/03/21/400123.aspx

Dies ist ein altes Werkzeug, und ich hatte die Quelle mit einer späteren Version von neu kompilieren die Laufzeit, aber es funktioniert gut und bieten HTML-Berichte über Änderungen.