Frage

Gibt es gute Programme gibt zu vergleichen .NET-Assemblies zu kompilieren?

Zum Beispiel habe ich helloworld.dll (1.0.0.0) und helloworld.dll (2.0.0.0), und ich möchte Unterschiede vergleichen, wie kann ich dies tun?

Ich weiß, ich kann .NET Reflector verwenden und die Assembly Diff-Plugin verwenden. Gibt es noch andere gute Tools gibt, dies zu tun?

War es hilfreich?

Lösung

Andere Tipps

Zwei Wege.

Sie könnten ildasm und diff mit klassischen Werkzeugen.

Oder Sie könnten verwenden NDepends, die für diese Funktion kosten wird.

[Stück zu C # bloaters ..]

Ich hatte nur zwei Revisionen derselben DLL zu vergleichen, die die gleiche Version hatten (ich ein kleines Update zu implementieren, benötigt wird, und stellen Sie die DLL in der Produktion, aber ich wollte sicherstellen, dass keine weiteren Änderungen in dem Code durchgesickert) . Im Idealfall würde ich die Assemby Diff-Add-In möchten, dass ich den Unterschied zu zeigen, aber es funktioniert nicht (es denkt, dass ich eine DLL selbst bin zu vergleichen). Also das ist, was ich getan habe:

  • zwei Ordner erstellt, um zerlegte Quelldateien zu halten.
  • verwendet, um die Reflector 's Exportieren Option (aus dem Kontextmenü) Quelldateien aus jeder DLL in den Ordnern in vorherigem Schritt zurück.
  • erstellt zu erzeugen
  • Gebraucht das kostenlose DiffMerge Werkzeug zwei Verzeichnisse zu vergleichen; die Werkzeuge, zeigte mir die geänderten Dateien und den Unterschied.

Es ist ein bisschen kludgy, aber scheint zu funktionieren. Ich möchte die Versammlung Diff-Add-In gearbeitet, though.

UPDATE: Die neueste Version der Versammlung Diff-Add-In sollte die Frage des Vergleichs von zwei Versionen des gleichen Baugruppe fixieren. Probieren Sie es aus.

Das Tool NDepend bietet viele Features .NET-Code diff zu behandeln. Disclaimer: Ich bin einer der Entwickler des Werkzeugs .

Das Panel Suche nach Ändern gewidmet Baugruppen Code diff zu durchsuchen. Beachten Sie, dass:

  • Sie können Plug beliebigen Code Diff-Tool durch das Menü verwendet, um NDepend Vergleichen ältere und neuere Version der Quelldatei
  • Wenn Sie nicht über den Quellcode haben, nur die rohen Baugruppen, gibt es die Option Vergleichen ältere und neuere Version mit Reflektor zerlegt

NDepend Suche nach Diff Panel

Beachten Sie auch im Screenshot, der ein CQLinq-Code-Abfrage erzeugt wird, um das diff zu durchsuchen .

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

Standard Viele andere diff-Abfragen und Regeln sind standardmäßig vorgeschlagen, dass wir werden Sie .NET-Code diff auf intelligente Art und Weise zu sehen.

Eine weitere Option ist LibCheck von Microsoft.

Pretty alte Konsolen-Tool für nur öffentliche API diff bekommen. Ich konnte nicht ohne das Debuggen und Retargeting auf eine neuere Version .net laufen. Aber es hat mir sehr klar Ausgang und ich werde es später verwenden.

Hier ist ein Artikel mit Screenshots .

Java hat eine nette Geschichte: Semantic Diff Dienstprogramme

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top