2013-03-18 25 views
6

Ho un'attività di build che riflette una delle nostre librerie per confrontarla con una definizione di dominio. Nel corso della riflessione, ogni volta che provo a riflettere Uri ritorna come RunTimePropertyInfo invece di Uri e ogni volta che controllare una qualsiasi delle proprietà riflesse ottengo un'eccezione affermando ...Riflettere una versione precedente di System.dll

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

L'attività di costruzione è stato compilato con System.dll versione 4.0.0.0. Sospetto che questo sia il problema. C'è un modo per me per riflettere un tipo su una versione precedente di System.dll.

Finora questo ha fallito solo con Uri. Qualche idea?

+0

Ho provato a repointare la mia azione build sullo stesso system.dll ma non ha avuto alcun effetto. Vale la pena notare che la versione di System.dll che la libreria che sto riflettendo proviene dalla libreria portatile .net 4. – Robert

+1

Stai mescolando obiettivi quadro, che non funziona mai bene. 2.0.5.0 è un numero di versione di Silverlight. –

risposta

0

Penso che ci sia un problema di versioning, se si sta usando una versione diffrent di dll che viene utilizzata nel progetto in quel caso, tale errore può aver luogo.

ecco una soluzione semplice che ha funzionato per me in passato, funzionerà per voi se c'è lo stesso problema. è possibile utilizzare il tag "bindingRedirect" in web.config definendo la vecchia e la nuova versione della DLL problematica. questo significa che ignorerà la vecchia versione del riferimento a dll e userà quella più recente se trovata. e non genererà un errore.

ecco il link di riferimento. http://msdn.microsoft.com/en-us/library/eftw1fys%28v=vs.71%29.aspx

+0

Grazie, ho provato il tuo suggerimento ma non ha aiutato. Immagino che quello che mi serve per fare è prendere la vecchia dll quando si riflette non quella nuova. – Robert

+0

Puoi copiare il tuo codice qui che cosa hai scritto in web.config? deve funzionare se il problema è relativo alla sola versione –

+0

Potrebbe non solo essere associato alla versione. Ciò si verifica solo su un tipo di dati "Uri". Sto solo andando a mettere un elemento nel mio registro per questo e saltare quando si verifica. Soddisferà i nostri bisogni. Grazie comunque per il tuo aiuto. – Robert

Problemi correlati