Не удалось загрузить файл или сборку «Newtonsoft.Json, Version = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed»

Я получаю сообщение об ошибке

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

для моей сборки CI

Решение, которое я пробовал

    

Он также не работал

В консоли диспетчера пакетов выполните: Update-Package –reinstall Newtonsoft.Json .

ОБНОВИТЬ

Я изначально разместил это как комментарий, но, как сказал @OwenBlacker, я просто поставлю его здесь:

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

Примечание. Пожалуйста, прочитайте комментарии ниже, прежде чем делать это.

Согласно замечанию Рене ниже БУДЬТЕ ЗНАЧИМ, что команда, отправленная в ответ, переустановит пакет в каждом проекте вашего решения. Поэтому, если вы используете пакет Newtonsoft.Json в нескольких проектах и, возможно, используете разные версии, просто выполнение вышеуказанной команды может иметь нежелательные последствия.

Для всех, у кого проблемы с версией Newtonsoft.Json v4.5, попробуйте использовать это в web.config или app.config:

         

ВАЖНО : убедитесь, что в теге configuration вашего файла конфигурации нет атрибута пространства имен (как указано в https://stackoverflow.com/a/12011221/150370 ). В противном случае tags assemblyBinding будут проигнорированы.

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

шаги;

1- посмотрите, какая версия вашего Newtonsoft.Json.dll в свойстве ссылки на проект, какая версия в вашей папке пакета (например, моя 7.0.1, а эталонная версия 7.0.0.0)

2. Посмотрите, что ожидает от вас проект в исключении (мой 6.0.0.0)

3- Добавить зависимую сборку в ваш файл конфигурации, как и должно быть.

      

Мне не повезло ни с одним из представленных здесь решений (удаление, переустановка, удаление ссылок, создание bindingRedirects и т. Д.) Мне пришлось вернуться к старой версии Newtonsoft. Версия 5.0.6 работала раньше, поэтому я попробовал это. Мне пришлось ввести эти две команды в консоли пакета:

uninstall-package newtonsoft.json -force

install-package newtonsoft.json -version "5.0.6"

Параметр -force в первой команде необходим для принудительного удаления. Зависимости от других сборок предотвращают удаление без него.

Я исправил проблему, добавив эту привязку связывания в файл .config:

  . . .        

Сообщение об ошибке жалуется на то, что не найдет версию 4.5.0.0, текущая версия Newtonsoft.Json – 6.0.0.0, поэтому redirect должно идти от 4.5 до 6.0, а не наоборот

Я думаю, что вы указываете на неправильную цель, измените ее на 4.5 вместо 6.0

     

Это должно сработать.

Я провел пару дней, пытаясь решить эту неприятную проблему. Я пробовал почти все, что можно найти в Интернете. Наконец, я обнаружил, что эта ошибка может быть вызвана (как и в моем случае) различными целевыми версиями проекта .Net (4.5 и 4.5.1) в одном решении. Эти шаги сделали это для меня:

  1. Дважды проверьте версию .Net каждого проекта, который находится в вашем решении. Просто щелкните правой кнопкой мыши по проекту и перейдите в « Properties .

введите описание изображения здесь

  1. Если возможно, установите ту же версию .Net для всех проектов. Если вы хотя бы не пытаетесь изменить проект Startup (для меня это вызвало проблемы).

  2. Удалите все пакеты Newtonsoft.Json из решения.

    uninstall-package newtonsoft.json -force

  3. Обновите все версии Newtonsoft.Json во всех файлах packages.config , например

  4. Переустановите Newtonsoft.Json из «Консоль диспетчера пакетов» с помощью:

    install-package newtonsoft.json

  5. Восстановить решение

(Необязательно) 7. Если вы изменили проект запуска, верните его снова

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

Сделал трюк для меня 🙂

Удалите сборку Newtonsoft.Json из ссылки на проект и добавьте ее снова. Вероятно, вы случайно удалили или заменили dll.

Я писал клиент службы WebApi REST, поэтому для меня эта ошибка была вызвана добавлением ссылок на сборки System.Net.Http и System.Net.Http.Formatting вручную с помощью Add Reference, когда я должен был добавить Microsoft.AspNet.WebApi.Client Пакет Microsoft.AspNet.WebApi.Client через NuGet . См. Также этот ответ на другой вопрос .

если вы используете несколько проектов в одном решении и библиотеке одной другой проверки, все проекты имеют одну и ту же версию Newtonsoft.Json

Обычно добавление переадресации привязки должно решить эту проблему, но она не работает для меня. Через несколько часов ударившись головой о стену, я понял, что в моем web.config есть атрибут xmlns, вызывающий проблемы. После удаления атрибута xmlns из узла конфигурации в Web.config переадресация привязки работала должным образом.

http://www.davepaquette.com/archive/2014/10/02/could-not-load-file-or-assembly-newtonsoft-json-version4-5-0-0.aspx

Разверните правильную версию на машине CI

Это говорит вам, что загрузчик сборок нашел другую версию сборки Newtonsoft.Json , которая не соответствует ссылке, которую вы создали в своем проекте. Чтобы правильно загрузить сборку, вы должны либо развернуть сборку сбоку вместе с вашим скомпилированным кодом, либо установить правильную версию сборки на конечной машине (то есть в GAC).

Альтернатива: убедитесь, что конфигурация находится в правильном файле

Если вы хотите сохранить текущее решение и загрузить сборку с другой версией, убедитесь, что указанная вами конфигурация находится в правильном файле .config . Помните, что нет xpto.dll.config , DLL, загружаемая приложением, всегда использует файл конфигурации запущенного приложения.

        

Работает для меня …. просто поставьте версию, которую вы используете в newVersion, т.е. (newVersion = “7.0.0.0”)

В вашем решении есть две разные версии библиотеки JSON.NET. Чтобы решить эту проблему, вы должны обновить их до последней версии. Следуй этим шагам:

1-Open solution explorer 2-Right Щелкните по имени решения 3-Выберите Manage Nuget Packages для решения 4-Select Updates из меню 5-Обновить пакет JSON.NET

Это решит вашу проблему.

ссылка: Не удалось загрузить файл или сборку «Newtonsoft.Json, Version = 7.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed» или одну из его зависимостей

Закрыть решение.

Откройте *.csproj и *.csproj с текстовым редактором и удалите любую строку с помощью Newtonsoft.Json

Пример:
..\packages\Newtonsoft.Json.9.0.1\lib\net40\Newtonsoft.Json.dll True

Или

Откройте снова решение и заново установите Newtonsoft.Json на Install-Package Newtonsoft.Json

Это работает для меня.

У нас была такая же проблема, о которой вы говорили. Мы используем nunit для запуска тестов через CI, и у нас есть nunit, запускающий файл с именем tests.nunit, который описывает список тестовых dll-приспособлений для запуска.

Каждый тестовый прибор имел свой собственный файл конфигурации, но при запуске через файл «tests.nunit» переадресация привязки, похоже, игнорируется. Решением было добавить переадресацию привязки в новый файл конфигурации «tests.config», который был рядом с файлом «tests.nunit».

Вам необходимо обновить файл web.config на сервере. Когда nuget устанавливает NewtonSoft, обновите этот файл, включая этот код

        

У меня такая же проблема. И я также решил, что он просто делает следующее: Перейдите в TOOLS > Диспетчер пакетов NuGet и выберите Консоль диспетчера пакетов . Наконец, выполните следующие две команды 🙂

  1. удалить пакет newtonsoft.json -force
  2. install-package newtonsoft.json

В моем случае основной проект по- прежнему ссылался на старую версию Newtonsoft.Json, которая больше не существует в проекте (показана желтым восклицательным знаком). Удаление справки решает проблему, не требуется привязка Redirect.

У меня была такая же проблема с версией 7.0.0.0, и проблема, вызывающая мою проблему, была Microsoft.Rest.ClientRuntime, которая каким-то образом ссылалась на неправильную версию (6.0.0.0) Newtonsoft.json, несмотря на правильное управление зависимостями в самородок ( была установлена ​​правильная версия newtonsoft.json (7.0.0.0)).

Я решил это, применив redirect выше от 6.0.0.0 до 7.0.0.0 (от Kadir Can) в файле конфигурации:

  

—-> Через несколько дней, не меняя ничего, он снова появился с той же ошибкой. Я установил версию 6.0.0.0 n, обновив ее до версии 7.0.0.0, теперь она отлично работает.

В моем случае, после загрузки сборки и добавления ссылки на проект, я решил это путем «разблокирования» DLL перед добавлением ссылки на проект.

Используя проводник Windows, перейдите в папку DLL, щелкните правой кнопкой мыши по DLL и выберите «свойства». На одной из вкладок вы найдете кнопку «разблокировать», а затем вы можете добавить ссылку, и assembly будет загружаться правильно.

Я допустил ошибку при добавлении файла DLL NewtonSoft для .Net 4.5.

Мой главный проект был 4,5, но когда я добавил дополнительный проект для своего решения, он странно добавил его как проект .Net 2.0 … и когда я попытался использовать DLL от NewtonSoft 4.5 с этим, я получил этот «Newtonsoft.Json cann «Не найдено».

Решением (конечно) было изменение этого нового проекта с .Net 2.0 до 4.5.

Мне ничего не помогло, но на самом деле это было исправлено:

  1. Удалите все привязки зависимостей в app.config (из всех файлов app.config в решении)
  2. Выполните следующую команду из «Консоль диспетчера пакетов»,

Get-Project -All | Надстройка BindingRedirect

  1. перестраивать

Ссылка: http://blog.myget.org/post/2014/11/27/Could-not-load-file-or-assembly-NuGet-Assembly-Redirects.aspx

Щелкните правой кнопкой мыши на своем проекте, выберите управление пакетами Nuget, введите newtonsoft в поле поиска и установите последнюю версию. Затем запустите приложение

Я столкнулся с такой же ошибкой и боролся с ней часами. У меня был проект веб-API, который использует Newtonsoft.json и еще один проект UnitTest для проекта веб-API. Проект модуля тестирования также нуждался в ссылке Newtonsoft.json. Но при добавлении ссылки я получал исключение выше.

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

     

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

Убедитесь, что у вас есть только один элемент под каждым элементом.

В некоторых случаях VS генерирует это:

    

Вместо

      

Мне долго приходилось осознавать, что это была проблема!

Ниже раздела добавьте в свой web.config

         

Если ошибка исчезает локально и все еще появляется на сервере, решение, которое работает со мной, это удалить папку bin и packages.config и web.config и повторно загрузить эти файлы

Просто проверьте версию свойств Newtonsoft.Json Newtonsoft

Затем вам нужно добавить эту версию в свою веб-конфигурацию (в моем случае 8.0.0.0).

  • Как десериализовать объект JSON с недопустимым именем поля в нем
  • Как реализовать пользовательский JsonConverter в JSON.NET для десериализации списка объектов базового classа?
  • Как использовать JSON.NET для десериализации в вложенный / рекурсивный словарь и список?
  • Как я могу вернуть CamelCase JSON, сериализованный JSON.NET из методов controllerа ASP.NET MVC?
  • Как десериализовать данные JSON?
  • JSON.NET - как десериализовать сборку интерфейсных экземпляров?
  • Использование JSON.NET для возврата ActionResult
  • Как я могу получить список ключей от Json.NET?
  • Конвенция о присвоении имен JSON
  • Как десериализовать JSON с двойными именами свойств в одном и том же объекте
  • Сериализация нескольких свойств DateTime в одном classе с использованием разных форматов для каждого из них
  • Давайте будем гением компьютера.