2013-03-29 15 views
8

Ich habe eine C# -Anwendung mit zwei Bibliotheken (Mond-apns, tweetsharp) .. Jede Bibliothek hat eine Referenz für newtonsoft.json.dll, aber verschiedene Versionen ... Meine App erfolgreich erstellen aber eine Bibliothek funktioniert gut und die andere löst eine Ausnahme aus (die DLL-Datei kann nicht gefunden werden).Verwenden Sie verschiedene Versionen von DLL-Datei in einer App

Ich denke, dass, wenn ich nur eine Version bauen geht in den Ordner bin, aber ich weiß nicht, was zu tun ist.

Vielen Dank im Voraus.

+1

Wenn beide Bibliotheken mit "Spezifischer Version" erstellt wurden, bin ich mir nicht sicher, was getan werden kann. Ich nehme an, Sie haben keinen Zugang zu den beiden Bibliotheken richtig? – JeremyK

+0

Verwenden Sie Nuget? –

+2

Ich denke, dass Sie diesen Beitrag verwenden können, um es zu lösen (denke ich): http://stackoverflow.com/questions/8188191/how-to-manage-version-dependencies-in-ac-net-project – Rikon

Antwort

4

Sie Probleme ist, beide Bibliotheken zwingen kann, die gleiche Version zu verweisen, indem Verwenden Sie Assembly Binding Redirects in Ihrer app.config oder web.config. Offensichtlich funktioniert das nur, solange die Bibliotheksversionen kompatibel sind.

+0

Eventuell können Sie auch das ['AppDomain.AssemblyResolve'-Ereignis] (https://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve (v = vs.110) .aspx) verarbeiten. [Siehe hier ein Beispiel] (http://www.aboutmycode.com/net-framework/assemblyresolve-event-tips/). –

2

Da Sie angegeben haben Sie Zugriff auf die Quelle der beiden Bibliotheken haben:

In beiden Projekten, stellen Sie den Verweis auf newtonsoft nicht Specific Version erforderlich. Erstellen Sie diese Projekte neu.

Wenn Sie jetzt Ihr Hauptprojekt aufzubauen, sollten die beiden Bibliotheken mit der gleichen Version des newtonsoft DLL so lange in Ordnung sein, da es keine Kompatibilität

Verwandte Themen