Wie kann ich Unterschiede in zwei Framework DLL’s feststellen?
Ich hatte ein Problem, dass auf einem System ein Interner Fehler des .NET Frameworks auftratt und auf dem anderen System nicht und müsste den Fehler analysieren.
Als Erstes habe ich binär versucht Unterschiede festzustellen. 95% Unterschschied in der System.Web.dll 2.0.5727.832 und 2.0.5727.1433.
Um genauer etwas zu sehen könnte man versuchen mit dem Reflector for .NET von Lutz Roeder reinschauen oder die DebugSourcen von Microsoft.
- Zwei Assemblys können beim Reflector nicht geladen werden und auch nicht verglichen werden
- Sourcen von .NET Frameworks von Microsoft zu finden und zu bekommen.
Lösungsansatz:
Ausführen
%comspec% /k ""C:\Programme\Microsoft Visual Studio 8\VC\vcvarsall.bat"" x86
ildasm System.Web.dll /OUT=System.Web.il
ildasm V832.System.Web.dll /OUT=V832.System.Web.il
Somit bekommen wir zwei Intermediate Language-Files die IL-Code enthalten und mit einem Tool wie KDiff lassen sich die Unterschiede schnell aufzeigen und untersuchen.

Posted in .NET