Also, ich habe eine Drittanbieter-DLL in C # 2.0 geschrieben, die stark typisiert werden muss, und ich habe keinen Zugriff auf den Quellcode. Ich habe mehrere Artikel darüber gefunden, wie man die .dll zerlegt und sie mit einer stark benannten Schlüsseldatei wieder zusammenfügt.
Problem ist, dass VS2010 es als .NET 4.0 .dll anstatt einer 2.0 .dll (der Version, in der sich unsere Anwendung gerade befindet) neu kompiliert. Ich kann die "neue" DLL in meinem Projekt nicht einschließen, weil es mir einen Laufzeitfehler von gibt: "Diese Assembly wird von einer Laufzeit erstellt, die neuer als die aktuell geladene Laufzeit ist und nicht geladen werden kann." Wenn ich die DLL nicht signiere, bekomme ich die "Assembly ist nicht stark typisiert." Fehler.
Gibt es eine Möglichkeit, diese DLL im 2.0-Framework mithilfe von VS2010 ilasm.exe neu zu kompilieren?
Sie verwenden wahrscheinlich die Visual Studio 2010-Eingabeaufforderung. Es wird die Umgebung eingerichtet, um C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ilasm.exe auszuführen, wenn Sie "ilasm.exe" eingeben. Falsche Version, möchten Sie v2.0.50727 \ ilasm.exe. Geben Sie den vollständigen Namen ein. Oder kopieren und bearbeiten Sie vc \ bin \ vsvarsall.bat
Nein, Sie können 4.0 iilsm nicht verwenden, um zu 2.0 zu kompilieren; Sie sollten die Datei ilasm.exe aus dem 2.0-Framework-Verzeichnis verwenden. zum Beispiel C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
.
Beachten Sie, dass Sie dafür nur die Laufzeit benötigen, nicht das SDK oder VS 2005 / 2008.
Tags und Links c# visual-studio-2010 ilasm