2016-12-05 3 views
1

В моем проекте используется Newtonsoft.Json.dll. Я добавил DLL в качестве ссылки на мой проект, и им с помощью версии 8.0.2Сборка ищет неправильную версию Newtonsoft.Json.dll

Все работает на моем компьютере, однако, когда я перенести все на новый компьютер вместе с Newtonsoft.Json.dll я получаю ошибку

не удалось загрузить файл или сборку «Newtonsoft.Json, Version = 4.0.3.0, Culture = нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed» или один из его зависимостей. Система не может найти указанный файл.

Я не ссылаюсь на эту версию в любом месте и в моем приложении app.config ничего не указано.

+0

Сколько проектов это решение есть, и делать какие-либо из них опираются на JSON, кроме проекта запуска –

ответ

0

Я бы проверял версию Newtonsoft.Json в каталоге bin запуска проекта. Если Newtonsoft.Json есть, и это версия, которую вы ожидаете, вы можете использовать Fuslogvw (https://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.110).aspx), чтобы увидеть, откуда загрузчик пытается получить версию 4.0.3.0. Это может дать вам некоторое представление о том, почему среда выполнения ищет другую версию.

Надеюсь, что это поможет.

0

Предыдущий ответ поможет вам выявить проблему. Это происходит, когда в какой-либо справочной библиотеке явно указана версия библиотеки, которую она поддерживает. К счастью, вы можете изменить привязку в app.config (смотри пример ниже):

<configuration> 
    <!--YOUR CONFIG --> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
Смежные вопросы