Frage

Beim Kompilieren erhalte ich folgende Fehlermeldung:

Assembly 'MyFramework [...]' verwendet 'System.Web.Extensions, Version = 3.5.0.0 [...]' mit einer höheren Version als referenziertes Assembly 'System.Web.Extensions, Version = 1.0.61025.0 [. ..] ''

MyProject bezieht sich auf beides System.Web.Extensions 1.0 UND-Projekt „MyFramework“, letzteres wiederum bezieht sich auf die Web-Erweiterung 3.5.Beide Referenzen sind Lokal kopieren = falsch, spezifische Version = wahr.

Der Fehler tritt in MyProject auf (nicht in MyFramework).Was ist hier falsch?

Ich verstehe, dass zwei Versionen derselben Assembly nicht am selben Ort koexistieren können. Aus diesem Grund ist copy local falsch.

(Ich weiß, dass das Setup lahm ist, es ist eine riesige Legacy-Anwendung, man kann nicht einfach irgendetwas umgestalten.)

AKTUALISIEREN:Da muss irgendwas mit meinem Projekt sein.Ich habe ein Beispielprojekt erstellt (für 2.0, bezogen auf Web-Erweiterungen 1.0), das ein anderes Beispielprojekt (fwk 3.5, Web-Erweiterungen 3.5) verwendet und problemlos kompiliert werden kann.(So ​​wie ich es erwartet hatte.) Ich habe also im Grunde die Situation modelliert und konnte das Problem nicht reproduzieren.Die Frage wurde geändert in:

Was kann das oben genannte Verhalten verursachen?Ist es technisch gesehen falsch, auf zwei Versionen derselben Assembly mit starkem Namen zu verweisen?

UPDATE 2:Informationen zur Grundursache finden Sie in den akzeptierten Antwortkommentaren.(„Exponierte Typen.“) Ich muss noch einen Weg finden, das Problem zu lösen.

War es hilfreich?

Lösung

Sie müssen verwenden Externer Alias um auf zwei unterschiedliche Versionen derselben Assembly zu verweisen.

Andere Tipps

Du brauchst füge hinzu ein <bindingRedirect> in App.config.

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