2013-03-29 14 views
8

Mam aplikację C# z dwoma bibliotekami (moon-pufy, tweetsharp) .. Każda biblioteka ma odniesienie dla newtonsoft.json.dll, ale różne wersje ... Moja aplikacja została pomyślnie zbudowana ale jedna biblioteka działa dobrze, a druga rzuca wyjątek (nie może znaleźć pliku DLL).Użyj różnych wersji pliku dll w jednej aplikacji

Myślę, że kiedy buduję tylko jedną wersję idzie do folderu bin, ale nie wiem co robić.

Z góry dziękuję.

+1

Jeśli obie biblioteki zostały zbudowane z "wymaganą wersją", nie jestem pewien, co można zrobić. Zakładam, że nie masz dostępu do tych dwóch bibliotek? – JeremyK

+0

Czy używasz Nuget? –

+2

Myślę, że możesz użyć tego postu do rozwiązania (myślę): http://stackoverflow.com/questions/8188191/how-to-manage-version-dependencies-in-ac-net-project – Rikon

Odpowiedz

4

można zmusić obie biblioteki odwołać tę samą wersję, przy użyciu Assembly Binding Redirects w pliku app.config lub web.config. Oczywiście działa to tylko wtedy, gdy wersje biblioteki są kompatybilne.

+0

Możesz także być w stanie obsłużyć zdarzenie ['AppDomain.AssemblyResolve'] (https://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve (v = vs.110) .aspx). [Zobacz tutaj jako przykład] (http://www.aboutmycode.com/net-framework/assemblyresolve-event-tips/). –

2

Ponieważ stwierdzono masz dostęp do źródła dwóch bibliotek:

W obu projektach ustaw odniesienie do newtonsoft nie wymaga Specific Version. Przebuduj te projekty.

Teraz, kiedy budujesz swój główny projekt, dwie biblioteki powinny być ok, z tą samą wersją newtonsoft DLL tak długo, jak nie ma zgodności zagadnień

Powiązane problemy