2013-03-18 3 views
6

Ich habe eine Build-Aktivität, die eine unserer Bibliotheken widerspiegelt, um es mit einer Domäne-Definition zu vergleichen. Bei der Reflexion, wenn ich versuche, Uri zu reflektieren sie kehrt als RunTimePropertyInfo statt Uri und wenn ich überprüfen jede der reflektierten Eigenschaften ich eine Ausnahme erhalten unter Angabe ...Reflektieren einer älteren Version von System.dll

"Could not load file or assembly 'System, Version=2.0.5.0, culture=neutral, publickeytoken=7cec85d7bea7798e, retargetable=yes" 

Die Build-Aktivität mit System.dll kompiliert Version 4.0.0.0. Ich vermute, das ist das Problem. Gibt es eine Möglichkeit für mich, einen Typ auf einer älteren Version von System.dll zu reflektieren.

Bisher ist das nur mit Uri gescheitert. Irgendwelche Ideen?

+0

Ich versuchte, meine Build-Aktion auf die gleiche system.dll, aber das hatte keine Auswirkungen. Beachten Sie, dass die Version von System.dll, dass die Bibliothek, die ich reflektiere, von der .net 4 portable Bibliothek ist. – Robert

+1

Sie mischen Rahmen Ziele, die nie gut funktioniert. 2.0.5.0 ist eine Silverlight-Versionsnummer. –

Antwort

0

Ich denke es gibt Versionierungsproblem, wenn Sie diffrent Version der DLL verwenden, die im Projekt in diesem Fall verwendet wird, kann solcher Fehler stattfinden.

hier ist eine einfache Lösung, die für mich in der Vergangenheit funktionierte, wird es für Sie arbeiten, wenn es das gleiche Problem gibt. können Sie "bindingRedirect" Tag in web.config verwenden, indem Sie alte und neue Version der problematischen DLL definieren. Das bedeutet, dass es die alte Version der DLL-Referenz ignoriert und eine neuere DLL-Referenz verwendet und keinen Fehler generiert.

hier ist die Referenz-Link. http://msdn.microsoft.com/en-us/library/eftw1fys%28v=vs.71%29.aspx

+0

Danke, ich habe deinen Vorschlag ausprobiert, aber es hat nicht geholfen. Ich nehme an, dass ich die alte DLL aufheben muss, wenn ich nicht die neue reflektiere. – Robert

+0

Können Sie Ihren Code hier kopieren, was Sie in web.config geschrieben haben? Es muss funktionieren, wenn das Problem nur mit der Version –

+0

zu tun hat Es ist möglicherweise nicht nur der Version zugeordnet. Dies tritt nur bei einem Datentyp 'Uri' auf. Ich werde nur ein Element in mein Protokoll dafür platzieren und es überspringen, wenn es auftritt. Es wird unsere Bedürfnisse befriedigen. Danke für deine Hilfe trotzdem. – Robert

Verwandte Themen