16

Ho un progetto MV4 di asp.net con MEF e RavenBD.Come risolvere la dipendenza da Antlr3 hell

Quando i carichi di progetto che genera questa eccezione: Impossibile caricare il file o l'assembly Antlr3.Runtime.dll

Ho trovato che sia RavenDB e WebGrease (installati con MVC 4) utilizzare Antlr3. Ma WebGrease viene fornito con la propria dll Antlr3, firmata da Microsoft - PublicKeyToken 31bf3856ad364e35

Default di default di AntiLr3 PublicKeyToken è eb42632606e9261f.

RavenDB e WebGrease utilizzano la stessa versione di Antlr3 3.3.1.7705

Come posso risolvere questo problema?

+1

RavenDB rimuoverà il dep Antlr3 presto –

+0

@ Ayende-Rahien Grazie Ayende per le informazioni Sfortunatamente avrei lo stesso problema se un'altra delle mie dipendenze dipenda da Antlr3. Voglio dire che il problema non è a causa di RavenDB ma di WebGrease che sta usando la sua versione compilata di Antlr3. – W3Max

risposta

6

Purtroppo non ho trovato una soluzione alle dipendenze in conflitto della stessa versione con diverse firme.

Ma la buona notizia è che uno dei contributori di WebGrease, Howard Dierking, ha risposto alle mie preoccupazioni via email. Ecco la sua risposta:

Ciao Maxime - mi spiace che ti sia imbattuto in questo. Sto lavorando per fare un paio cose per risolvere rapidamente il problema:

1) Preparazione di un aggiornamento al pacchetto ANTLR con l'ultima versione di ANTLR - metterà alla prova e spingere per nuget.org

2) Collaborare con il team di WebGrease per modificare il pacchetto NuGet in modo che non invii il file antlr.dll, ma piuttosto un pacchetto con la dipendenza - nel parlare con loro, non erano a conoscenza dell'esistenza di un pacchetto .

Questo dovrebbe risolvere il problema di inferno di dll in cui è stato eseguito. Spero che questo non ci vorrà più di un paio di settimane con le vacanze.

Grazie,

_howard

+0

attualmente sta sperimentando la stessa cosa. L'hai risolto? My 'WebGrace varsion 1.3.0' (ultima da Nuget) my' Antlr3.Runtime versione 3.3.1.7705' (proviene da Nuget) – Kuncevic

1

Ho avuto lo stesso problema e risolverlo eliminando tutto il progetto dal mio computer, ottenendo l'ultima versione dal server e ricostruire tutte le dipendenze Nuget dopo il progetto caricato. Puoi provare questo, ha funzionato per me.

Sembra che alcune dipendenze Nuget lasciano un po 'di spazzatura dietro dopo essere disinstallato e questo è l'unico modo per fare un pulito ricostruzione per tutta la soluzione