Domanda

Ricevo questo messaggio di errore durante la compilazione:

Assemblea 'MyFramework [ ... ] un" uso " del Sistema.Web.Estensioni, Version=3.5.0.0 [ ... ] " che ha una versione successiva rispetto a cui fa riferimento l'assembly 'System.Web.Estensioni, Version=1.0.61025.0 [...]'

Il progetto si riferisce sia Sistema.Web.Estensioni 1.0 E il progetto 'MyFramework', quest'ultimo a sua volta si riferisce estensione web di 3.5.Entrambi i riferimenti sono Copia locale = false, versione Specifica = true.

L'errore si verifica in Progetto (non in MyFramework).Cosa c'è di sbagliato?

Capisco che due versioni della stessa assemblea non coexsist sulla stessa posizione, questo è il motivo per cui la copia locale è falso.

(So che la configurazione è zoppo, è una grande applicazione legacy, non solo il refactoring nulla).

AGGIORNAMENTO:ci deve essere qualcosa con il mio progetto.Ho creato un progetto di esempio (per 2.0, riferendosi estensioni web 1.0) che utilizza un altro progetto di esempio(fwk 3.5, estensioni web 3.5) un'compila tutti i diritti.(Il modo in cui mi aspettavo.) Quindi, in pratica ho modellato la situazione e non ha potuto riprodurre il problema.La domanda è cambiata:

Che cosa potrebbe causare il precedente comportamento?Tecnicamente, c'è qualcosa di sbagliato in riferimento due versioni dello stesso assembly con nome sicuro?

AGGIORNA 2:vedere accettato di rispondere a commenti per conoscere la causa principale.("Tipi esposti.") Ancora bisogno di trovare il modo per risolverlo.

È stato utile?

Soluzione

È necessario utilizzare extern alias per fare riferimento a due distinte versioni della stessa assemblea.

Altri suggerimenti

È necessario aggiungere un <bindingRedirect> in App.config.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top