2013-03-29 15 views
8

Ho un'applicazione C# con due librerie (apri di luna, tweetsharp) .. Ogni libreria ha un riferimento per newtonsoft.json.dll ma versioni diverse ... La mia app è stata creata con successo ma una libreria funziona bene e l'altra genera un'eccezione (impossibile trovare il file dll).Uso di diverse versioni del file dll in un'app

Penso che quando creo solo una versione va nella cartella bin, ma non so cosa fare.

Grazie in anticipo.

+1

Se entrambe le librerie sono state costruite con "Versione specifica", non sono sicuro di cosa si possa fare. Immagino tu non abbia accesso alle due librerie corrette? – JeremyK

+0

Stai usando Nuget? –

+2

Penso che tu possa usare questo post per risolverlo (penso): http://stackoverflow.com/questions/8188191/how-to-manage-version-dependencies-in-ac-net-project – Rikon

risposta

4

È possibile forzare entrambe le librerie per fare riferimento alla stessa versione con utilizzando Assembly Binding Redirects nel proprio file app.config o web.config. Ovviamente questo funziona solo fino a quando le versioni della libreria sono compatibili.

+0

Potrebbe anche essere possibile gestire l'evento ['AppDomain.AssemblyResolve'] (https://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve (v = vs.110) .aspx). [Vedi qui per un esempio] (http://www.aboutmycode.com/net-framework/assemblyresolve-event-tips/). –

2

Dal momento che ha dichiarato di avere accesso alla fonte delle due biblioteche:

In entrambi i progetti, impostare il riferimento a newtonsoft a non richiesto Specific Version. Ricostruisci questi progetti.

Ora, quando si genera il progetto principale, le due biblioteche dovrebbe essere ok con la stessa versione della DLL newtonsoft fintanto che non v'è alcuna Problemi di compatibilità

Problemi correlati