2015-09-27 5 views
6

Во-первых, это не просто дубликат. Ни один из ответов на следующие вопросы не работает для меня.Не удалось загрузить файл или сборку «Newtonsoft.Json» или одну из его зависимостей.

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

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

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

Мой пакет Config имеет:

<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. Но вопрос остается нерешенным.

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

+3

ли вы чистите содержимое папки сборки, прежде чем строить? Вы настроите таргетинг на ту же версию фреймворка, что и ссылочная dll? – ilansch

ответ

0

запустить эту команду в консоли менеджера пакетов:

PM> Install-Package Newtonsoft.Json -Version 6.0.1 
+0

Не работал. Получена ошибка 'Install-Package: обновление 'Newtonsoft.Json 7.0.1' до 'Newtonsoft.Json 6.0.1' не удалось. Не удалось найти версию «Microsoft.AspNet.WebApi.Client», которая совместима с «Newtonsoft.Json 6.0.1» – shashwat

0
  1. В вашем обозревателе решений VS, удалите ссылку Newtonsoft.Json.
  2. Загрузить 6.0 двоичные файлы в Newtonsoft бинарных файлов here
  3. Извлечение файлов
  4. Добавить библиотеку Newtonsoft вручную. Из Visual Studio, щелкните правой кнопкой мыши Reference и выберите Add Reference
  5. Нажмите кнопку Обзор
  6. Перейдите к извлеченным файлов в Net45 и выберите Newtonsoft.Json.dll
  7. Если это не работает, попробуйте с помощью Net40 вместо пройдя через весь снова.
0

Run 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> 

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

+0

Спасибо! Я вспомнил, я уже пробовал. Но повторите попытку и обновите здесь очень скоро – shashwat

+0

Извините за поздний ответ. После запуска команды, как было предложено вами, я все равно получаю такую ​​же ошибку. Он устанавливает привязку переадресации на ''. Я попытался перейти на тот, который вы указали ''. Но он сгенерировал эту ошибку 'Не удалось загрузить файл или сборку Newtonsoft.Json 'или одну из его зависимостей. Определение манифеста размещенной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040). – shashwat

0

В моем случае следующий код присутствовал в моей локальной отладочной версии решения, но не в моей версии кода на сервере. Добавление кода на мой сервер. Файл 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

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

1

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

6

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

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

НТН

1

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

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

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

0

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

+0

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

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