it-roy-ru.com

Не удалось загрузить файл или сборку 'Newtonsoft.Json' или одну из ее зависимостей

Во-первых, это не просто дубликат. Ни один из ответов на следующие вопросы не работает для меня.

http://goo.gl/tS40cn
http://goo.gl/pH6v2T

Я только что обновил все свои пакеты с помощью диспетчера пакетов Nuget и начал получать эту ошибку.

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

Конфигурация моего пакета имеет:

<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />

Web.config включает этот фрагмент кода:

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

Свойства из справочника для Newtonsoft.Json

 enter image description here

Согласно ответам на подобные вопросы, я попробовал следующее:

  • Переустановка пакета с помощью Update-Package –reinstall Newtonsoft.Json
  • Удаление конфигурации dependentAssembly из Web.config для Newtonsoft.Json
  • Изменение newVersion на 6.0.0.0 и 7.0.0.0 в dependentAssembly. Это породило новую ошибку.
  • Также попробовал Get-Project -All | Add-BindingRedirect. Это меняет newVersion для Newtonsoft.Json на 4.5.0.0. Но проблема остается нерешенной.

Пожалуйста, помогите мне исправить это.

10
shashwat

Я знаю, что это старый, но я столкнулся с той же проблемой. Моя проблема заключалась в том, что несколько проектов в решении использовали Newtonsoft.Json, но некоторые были в разных версиях. Я обновил их все до самой последней версии (9.0.1 по мере ввода), и проблема исчезла.

Во всяком случае ... если кто-то все еще имеет дело с этим, обязательно обновите пакет в КАЖДОМ проекте в решении.

НТН

12
Casey Crookston

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

Microsoft.AspNet.WebApi
Microsoft.AspNet.Client
Microsoft.AspNet.Core
Microsoft.AspNet.WebHost
Newtonsoft.Json

Затем переустановил Microsoft.AspNet.WebApi, который автоматически установил .Client, .Core, .WebHost, .Json. 

2
Kenmeister

Добавление ссылки Newtonsoft в мой проект MVC решает проблему для меня.

2
Zafar

У меня была эта ошибка, и я сначала использовал Update-Package –reinstall Newtonsoft.Json -IncludePrerelease, но она не работала, а затем Install-Package Newtonsoft.Json. это сработало.

1
samira riazati

Запустите Update-Package Newtonsoft.Json -Reinstall

Он должен удалить ссылку на вашу версию 4.5 и переустановить более новую версию, указанную в файле package.config. Он также обновит перенаправление привязки, которое должно быть следующим:

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

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

1
Matt Johnson

проверьте версию 'Newtonsoft.Json' в ссылках проекта. Добавьте эту версию в веб-конфигурацию. Это будет работать . Например: Ваш Webconfig выглядит так:

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

Если ваша версия в списке литературы '9.0.0.0' Измените на это:

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

В моем случае следующий код присутствовал в моей локальной отладочной версии решения, но не в моей версии кода для сервера. Добавление кода в мой файл Web.config сервера устранило проблему.

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

0
Versatile

выполните эту команду в консоли диспетчера пакетов:

PM> Install-Package Newtonsoft.Json -Version 6.0.1
0
codeWorm
  1. В вашем обозревателе решений VS удалите ссылку Newtonsoft.Json.
  2. Загрузите бинарные файлы 6.0 с бинарных файлов Newtonsoft здесь
  3. Распакуйте файлы
  4. Добавьте библиотеку Newtonsoft вручную. В Visual Studio щелкните правой кнопкой мыши ссылку и выберите Добавить ссылку.
  5. Нажмите Обзор
  6. Перейдите к извлеченным файлам под Net45 и выберите Newtonsoft.Json.dll
  7. Если это не работает, попробуйте использовать Net40, повторив всю процедуру снова.
0
Ronald Ramos

Измените конфигурацию, как указано ниже:

0
Ash18