2016-02-16 5 views
2

я получаю следующее исключение каждый раз, когда я бегу мой проект:Как исправить исключение нагрузки json.net (Newtonsoft.Json) файл во время выполнения

Исключение из «System.IO.FileLoadException» типа произошло в mscorlib.dll, но не обрабатывался в коде пользователя Дополнительная информация: Не удалось загрузить файл или сборку «Newtonsoft.Json, Version = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed» или одну из его зависимостей. Определение манифеста размещенной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Я пробовал почти все решения, которые я мог найти в Интернете.

Мой packages.config файл:

<package id="Newtonsoft.Json" version="8.0.2" targetFramework="net451" /> 

and this in web.config file: 
<assemblyIdentity name="Newtonsoft.Json" PublicKeyToken="30ad4fe6b2a6aeed" /> 
     <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.8"/> 
     </dependentAssembly> 

Я даже использовал следующие команды для обновления/переустановки Json.NET:

update-package Newtonsoft.Json -reinstall 
update-package Newtonsoft.Json 

Что еще я могу попробовать?

+0

Я не уверен, но это тоже не сработало. –

+0

Я только что проверил, для Json.NET 8.0.2 'typeof (JsonSerializer) .Assembly.FullName' имеет' Version = 8.0.0.0'. Так что попробуй. – dbc

+0

См. Также https://stackoverflow.com/questions/22685530/could-not-load-file-or-assembly-newtonsoft-json-or-one-of-its-dependencies-ma. Конечно, номер версии неуместен для Json.NET 8.0.2 в этом ответе. – dbc

ответ

3

Изменение вашего связывания перенаправлять newVersion и oldVersion, чтобы соответствовать версии Json.NET вашего пытаются использовать:

<dependentAssembly> 
    <assemblyIdentity name="Newtonsoft.Json" PublicKeyToken="30ad4fe6b2a6aeed" /> 
    <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/> 
    </dependentAssembly> 

4,5 является основой версия, не версия Json.NET

+0

У меня все еще есть исключение. Это имеет какое-либо отношение к этому сообщению? Файл visual studio 2013 \ Projects \ Prodb1 \ packages \ Newtonsoft.Json.8.0.2 \ tools \ install.ps1 не может быть загружен, потому что в этой системе отключены запущенные скрипты . –

+0

По-прежнему с дополнительной информацией, или она вообще изменилась? – NikolaiDante

+0

Вы можете поделиться своим кодом как [mvce] (http://stackoverflow.com/help/mcve). На данный момент я не могу воссоздать ваш точный сценарий локально. – NikolaiDante

0

Спасибо все, я нашел проблему. Я не добавлял культуру = "нейтральный", когда я помещал это в web.config.

<dependentAssembly> 
    <assemblyIdentity name="Newtonsoft.Json" PublicKeyToken="30ad4fe6b2a6aeed" /> 
    <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/> 
    </dependentAssembly> 
0

Я имел этот вопрос и при ближайшем рассмотрении я понял, что каким-то образом Newtonsoft получил добавил два раза в

<dependentAssembly>..</dependentAssembly> 

в моем файле web.config. У меня были версии 8.0 и 9.0. Я считаю, что вторая запись была создана, когда я обновился с 8.0 до 9.0. Новая запись была автоматически создана, однако старая запись не была удалена.

 Смежные вопросы

  • Нет связанных вопросов^_^