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

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

Не удалось загрузить файл или сборку "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 я мог видеть следующую запись

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

Ответы

Ответ 1

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

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

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

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

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

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

Update-Package –reinstall Newtonsoft.Json

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

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

Спасибо @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 во всех моих проектах.

Ответ 5

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

Например,

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

Спасибо.

Ответ 6

У меня была такая же проблема, и удаление и переустановка не помогли. В то время я пытался установить самую последнюю версию (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.

Ответ 7

Я была такая же проблема. Я следовал за экостадинами, принудительно удалил/переустановил шаги, но нужно было добавить еще один шаг:

Я обновлял свое решение до Framework 4.5.2. У моего старого файла Web.Config было пространство имен в теге конфигурации.

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

Я обновил до:

<configuration>

Тогда bindingRedirect должен работать для любой версии NewtonSoft, которую вы используете:

<runtime xmlns="">
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

Ответ 8

Ну, в моем случае в решении было несколько проектов, и каждый из них использовал свою версию NewtonSoft.json. Мне пришлось пойти дальше и изменить версию в каждом проекте package.config чтобы она соответствовала последней версии (ну, это может быть любая версия, только она должна быть одинаковой во всех проектах). Как только все package.config указывают на одну и ту же версию, все, что мне нужно было сделать, это

Update-Package –reinstall Newtonsoft.Json

Теперь обратите внимание, мне также пришлось вручную изменить версию записи сборки web.config в одном из проектов. но это сделало работу.