Не удалось загрузить файл или сборку 'Newtonsoft.Json, версия = 7.0.0.0

15

Я столкнулся с ошибкой ниже

Не удалось загрузить файл или сборку "Newtonsoft.Json, Version = 7.0.0.0, Культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed 'или одна из ее зависимостей. Установленное определение манифеста сборки не сопоставить ссылку на сборку. (Исключение из HRESULT: 0x80131040)

Я мог видеть ниже в Web.config

   <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
      </dependentAssembly>

Итак, я изменил его на

   <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.1.0" />
      </dependentAssembly>

В файле packeges.config я мог видеть следующую запись

Но все же я столкнулся с той же проблемой. Пожалуйста помоги   

  • 0
    Причин для этого может быть много. Во-первых: проверьте сборку в выходной папке и убедитесь, что версия файла и строгое имя соответствуют ожидаемым. Я подозреваю, что версия со строгим именем - 7.0.0.0, поэтому верните обратно привязку к нему (строгое имя и версия файла могут отличаться - это было для Newtonsoft.Json 6. *)
Теги:
asp.net-mvc
nuget
json.net

6 ответов

34
Лучший ответ

Многое может пойти не так, и это сообщение об ошибке ничего не сообщает.

Но все же я столкнулся с той же проблемой.

Возможно, самым простым способом будет попытка переустановки пакета.

Перейдите в ИНСТРУМЕНТЫ > Диспетчер пакетов NuGet и выберите Консоль диспетчера пакетов. Выполните следующие две команды:

uninstall-package newtonsoft.json -force
install-package newtonsoft.json

Если вы все равно получите сообщение об ошибке после этого, то в конечном итоге мне удалось удалить раздел Json.Net из моего файла .config. Переустановка возвращает его, если его нет, и, видимо, вам нужно его удалить. Пока не будет нормального решения в самом пакете, я боюсь, что этот ручной шаг является обязательным. В консоли диспетчера пакетов выполните:

Update-Package –reinstall Newtonsoft.Json

Также рассмотрите .Net версию проектов в своем решении.

Это решение Microsoft с выгрузкой проекта.

  • 0
    У меня тоже была проблема с одним пакетом, в котором в качестве предварительного условия использовался Newtonsoft.JSON, и в настоящее время установлен 6.x. Обновление пакета не сработало, но программа удаления / переустановки загрузила текущую версию 9.x и исправила ошибку.
0

У меня была такая же проблема, и удаление и переустановка не помогли. В то время я пытался установить самую последнюю версию (10.0.3) Newtonsoft.Json. Я закончил установку версии 7.0.1, а затем столкнулся с другой статьей, которая предложила скопировать эту .dll в:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. Что я и сделал.

Снова запущен процесс установки REST API, а затем получена другая ошибка. При попытке установить Microsoft.Rest.ClientRuntime 2.3.2 это не удалось. Для этого я просто пошел в NuGet и установил его для проекта, в котором был установлен REST API.

Начнется установка REST API снова и на этот раз.

О, и если это помогает любому, у кого есть поисковые запросы, я делаю учебное приложение Azure Immersion 02-API с помощью VS2015 на Windows Server 2012R2.

0

Это может произойти, если package.config содержит 2 одинаковых имени пакета с другой версией.

Например,

<package id="System.Spatial" version="5.6.2" targetFramework="net45" />
<package id="System.Spatial" version="5.6.4" targetFramework="net45" />

Спасибо.

0

Спасибо @ekostadinov. Я смог заставить его работать с решением от @ekostadinov. В моем случае шаблон Web MVC по умолчанию имел версию NewtonSoft JSON версии 6. Я добавил библиотеку классов и к этому я установил NewtonSoft JSON версии 9 из диспетчера пакетов Nuget.

Я попытался удалить ссылку из моего веб-проекта, конфигурации пакетов и зависимостей, но все же я получал ошибку. Теперь я получал сообщение об ошибке, говорящее, что не смог найти версию Newtonsoft JSON 6. Первоначально я получал сообщение об ошибке, говорящее, что не смог найти версию Newtonsoft JSON версии 9.

Затем я последовал за @ekostadinov шагов.

uninstall-package newtonsoft.json -force
install-package newtonsoft.json

У меня появилось предупреждение относительно зависимости в консоли диспетчера пакетов, в котором упоминается о зависимости от версии DLL Web.Grease. Но в любом случае это было успешным.

Просто, чтобы дважды проверить, я запустил последнюю команду, упомянутую в вышеприведенном сообщении

Update-Package –reinstall Newtonsoft.Json

Он работал без каких-либо предупреждений.

Теперь я могу использовать версию 9 во всех моих проектах.

0

Я получил ту же ошибку и исправил ее, выполнив "Очистить" мое решение. Я использую Newtonsoft.Json в приложении UWP.

0

большую часть времени эта ошибка возникает из-за разных сборок, зависит от конкретной версии какой-либо другой сборки.

проще всего обновить все пакеты, зависящие от Newtonsoft.Json, используя диспетчер пакетов nuget.

он автоматически установит все конфигурационные файлы в вашем проекте.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню