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