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


вещи, которые я пробовал после поиска:

  1. в Интернете.Конфиг поставил привязку на старую версию:

    <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.1.0" />
    </dependentAssembly>
    
  2. редактировать мои .csproj файл, чтобы убедиться, что есть только одна ссылка Newtonsoft

    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..packagesNewtonsoft.Json.6.0.1libnet45Newtonsoft.Json.dll</HintPath>
       <SpecificVersion>False</SpecificVersion>
       <Private>True</Private>
    </Reference>
    
  3. поиск на моем компьютере для каждого Newtonsoft.формат JSON.DLL и удалить все версии 6.0.1 и удалить содержимое папки Temp

  4. восстановить / переустановить пакет в NuGet manager консоль

он успешно работает на строительстве, но получает ошибку при переходе на сайт.

EDIT

хорошо, тогда я попытался переустановить, как и каждый пакет nuget, и, похоже, добавил обратно версию 4.5 newtonsoft.формат JSON.DLL, но я получаю ту же ошибку. Цель моего проекта freamework-.NET 4.5.1, и вот трассировка стека, которую я получаю сейчас:

ошибка сервера в приложении"/".

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

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

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

Ошибка Источник:

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

Загрузить Сборку След: следующая информация может быть полезна, чтобы определить, почему сборка 'Newtonsoft.Json ' не удалось загрузить.

= = = информация о состоянии предварительной привязки === Журнал: DisplayName = Newtonsoft.формат JSON (Частичный) WRN: информация о частичной привязке была предоставлена для сборки: WRN: имя сборки: Newtonsoft.JSON / домен ID: 2 WRN: частичная привязка происходит, когда предоставляется только часть отображаемого имени сборки. WRN: это может привести к загрузке связующего неправильная сборка. Предупреждение: рекомендуется обеспечить полный текстовой идентификации по сборке, WRN: это состоит из простого имени, версии, языка и региональных параметров и маркера открытого ключа. WRN: см. технический документ http://go.microsoft.com/fwlink/?LinkId=109270 для получения дополнительной информации и общих решений этой проблемы. Журнал: Appbase = файл:///с:/пользователи/пользователь/документы/Visual Studio 2013 В/проектов в/Foo/бар/ LOG: Initial PrivatePath = c:usersuserdocumentsvisual studio 2013Projectsfoobarbin Вызов сборки: (неизвестно). === Журнал: данная привязка начинается в контексте загрузки по умолчанию. Журнал: использование файла конфигурации приложения: c:usersuserdocumentsvisual studio 2013Projectsfoobarweb.конфиг Журнал: использование файла конфигурации хоста: C:UsersuserDocumentsIISExpressconfigaspnet.конфиг Журнал: использование файла конфигурации машины из C:WindowsMicrosoft.NETFrameworkv4.0.30319configmachine.config. Журнал: политика не применяется к ссылке в настоящее время (частная, пользовательская, частичная или привязка сборки на основе расположения). Журнал: попытка загрузки нового URL типа File:///С:/Пользователи/пользователь/AppData по/местного/Темп/1/временная ASP.NET файлы/корень/48686d37/9d7a6572/Newtonsoft.формат JSON.файл DLL. Журнал: попытка загрузки нового URL типа File:///С:/Пользователи/пользователь/AppData по/местного/Темп/1/временная ASP.NET Файлы / root/48686d37/9d7a6572 / Newtonsoft.Json / Newtonsoft.формат JSON.файл DLL. Журнал: попытка загрузки нового файла URL:///c:/users/user/documents/visual studio 2013/Projects/foo / bar / bin / Newtonsoft.формат JSON.файл DLL. Журнал: использование файла конфигурации приложения: c:usersuserdocumentsvisual studio 2013Projectsfoobarweb.конфиг Журнал: использование файла конфигурации хоста: C:UsersuserDocumentsIISExpressconfigaspnet.конфиг Журнал: использование файла конфигурации машины из C:WindowsMicrosoft.NETFrameworkv4.0.30319configmachine.config. Журнал: перенаправление найдено в файле конфигурации приложения: 4.5.0.0 перенаправлено на 6.0.1.0. Журнал: ссылка После политики: Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed Журнал: попытка загрузки нового URL типа File:///С:/Пользователи/пользователь/AppData по/местного/Темп/1/временная ASP.NET файлы/корень/48686d37/9d7a6572/Newtonsoft.формат JSON.файл DLL. Журнал: попытка загрузки нового URL-адреса файл:///с:/Пользователи/пользователь/AppData по/местного/Темп/1/временные файлы ASP.NET /корень/48686d37/9d7a6572/Newtonsoft.Json / Newtonsoft.формат JSON.файл DLL. Журнал: попытка загрузки нового файла URL:///c:/users/user/documents/visual studio 2013/Projects/foo / bar / bin / Newtonsoft.формат JSON.файл DLL. WRN: сравнение имени сборки привело к несоответствию: основная версия Ошибка: не удалось завершить настройку сборки (hr = 0x80131040). Зондирование прекращено.

Трассировка Стека:

[FileLoadException: не удалось загрузить файл или сборку ' Newtonsoft.Json ' или одна из его зависимостей. Определение манифеста сборки расположены не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)]

[FileLoadException: не удалось загрузить файл или сборку ' Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed ' или одна из его зависимостей. Определение манифеста сборки расположены не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)] Система.Отображение.RuntimeAssembly._nLoad(имя файла, строку кода, свидетельствует значение параметра assemblysecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, pPrivHostBinder указателя IntPtr, логическое throwOnFileNotFound, логическое forIntrospection, логическое suppressSecurityChecks) +0 Система.Отображение.RuntimeAssembly.мой отчет(имя файла, строку кода, свидетельствует значение параметра assemblysecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, PPrivHostBinder указателя IntPtr, логическое throwOnFileNotFound, логическое forIntrospection, логическое suppressSecurityChecks) +34 Система.Отображение.RuntimeAssembly.InternalLoadAssemblyName(параметр assemblyref Имя_сборки, свидетельствует значение параметра assemblysecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, pPrivHostBinder указателя IntPtr, логическое throwOnFileNotFound, логическое forIntrospection, логическое suppressSecurityChecks) +152 Система.Отображение.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77 Система.Отображение.RuntimeAssembly.InternalLoad(строка assemblyString, свидетельствует значение параметра assemblysecurity, StackCrawlMark& stackMark, логическое forIntrospection) +16 Система.Отображение.Собрание.Load (String assemblyString) +28 Система.Сеть.Конфигурация.Компиляции.LoadAssemblyHelper (String assemblyName, Boolean starDirective) +38

[ConfigurationErrorsException: не удалось загрузить файл или сборку 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed ' или одна из его зависимостей. Определение манифеста сборки расположены не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)] Система.Сеть.Конфигурация.Компиляции.LoadAssemblyHelper (String assemblyName, Boolean starDirective) +752 Система.Сеть.Конфигурация.Компиляции.LoadAllAssembliesFromAppDomainBindirectory() +218 Система.Сеть.Конфигурация.Компиляции.LoadAssembly (AssemblyInfo ai) +130 Система.Сеть.Сборник.BuildManager.GetReferencedAssemblies (CompilationSection compConfig) +170 Система.Сеть.Сборник.BuildManager.GetPreStartInitMethodsFromReferencedassemblies() +91 Система.Сеть.Сборник.BuildManager.CallPreStartInitMethods(строка preStartInitListPath, Boolean& isRefAssemblyLoaded) +285 Система.Сеть.Сборник.BuildManager.ExecutePreAppStart () +153 Система.Сеть.Размещающий.HostingEnvironment.Инициализировать(appManager ApplicationManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, hostingParameters HostingEnvironmentParameters, политического уровня, связанных с политического уровня, связанных с исключением appDomainCreationException) +516

[HttpException (0x80004005): не удалось загрузить файл или сборку 'Newtonsoft.Json, Version=6.0.1.0, Культура=нейтральная, PublicKeyToken=30ad4fe6b2a6aeed ' или одна из ее зависимостей. Определение манифеста сборки расположены не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)] Система.Сеть.Строки httpruntime.FirstRequestInit (HttpContext context) +9913572 Система.Сеть.Строки httpruntime.EnsureFirstRequestInit (HttpContext context) +101 Система.Сеть.Строки httpruntime.ProcessRequestNotificationPrivate(iis7workerrequest wr, HttpContext context) +254

информация о версии: Microsoft .NET Framework версия: 4.0.30319; ASP.NET версия: 4.0.30319.18408

26 165

26 ответов:

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

update-package Newtonsoft.Json -reinstall

и, наконец, я удалил следующее из моей сети.config:

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

Если вы хотите, чтобы все ваши Newtonsoft.Пакеты Json-это то же самое версия, вы можете указать версию следующим образом:

update-package Newtonsoft.Json -version 6.0.0 -reinstall

Я использую Newtonsoft.Json v6. 0.3, но это то, что я должен был сделать в моей сети.конфигурационный файл:

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

обратите внимание, что, хотя я использую 6.0.3, мне пришлось вставить newVersion="6.0.0.0"

в моих пакетах.конфигурационный файл у меня есть:

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

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

Я работаю в среде со строгим фреймворком, и команда фреймворка часто расстраивает версию с разными dll.

Как я исправил эту проблему, чтобы запустить консоль диспетчера пакетов в visual studio (2013). Оттуда я выполнил следующую команду:

update-package Newtonsoft.Json -reinstall

следовал по

update-package Newtonsoft.Json

это прошло и обновило все мои файлы конфигурации и соответствующие файлы проекта. Принуждение их всех к одной и той же версии dll. Который был первоначально версия 4.5 перед обновлением снова, чтобы получить последнюю версию.

У меня было такое же сообщение об ошибке, и, как вы упомянули, это было связано с разными версиями Newtonsoft.формат JSON.библиотеки DLL, которые ссылается.

некоторые проекты в моем решении MVC использовали пакет NuGet для версии 4 этой dll.

затем я добавил пакет NuGet (для Salesforce в моем случае), который принес Newtonsoft.Json версии 6 с ним в качестве зависимости от одного из проектов. Это было то, что вызвало проблему для меня.

очистить вещи, я использовал Раздел Обновления в Диспетчере пакетов NuGet для решения (меню off Tools или щелкните правой кнопкой мыши решение), чтобы обновить Json.Net пакет по всему решению, так что это была одна и та же версия для всех проектов.

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

<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />

хорошо, я думаю, что я получил его на работу сейчас. Я удалил все Newtonsoft.формат JSON.dll на моей машине, которая не была последней версией, которую я мог найти, убедился, что у меня есть последняя версия в NuGet, и построил ее и убедился, что это последняя версия в папке bin, и я оставил изменения в интернете.config и .csproj. Теперь я нахожусь на другой ошибке, так что это должно работать..

Я пробовал шаги Олега, и они работали на моей же ситуации.

действия:

  1. выполнить update-package Newtonsoft.Json -reinstall в Диспетчере пакетов.

  2. удалить bin включить просмотр скрытых файлов и удалением bin папка.

  3. закройте Visual Studio и снова откройте его.

  4. Теперь запустите свой проект снова. Я считаю, что это должно быть хорошо!

в моем случае это был просто вопрос:

Tools -> NuGet Package Manager -> Package Manager Settings -> Clear Cache

проблема была вызвана, когда я переназначил папку TFS.

комментируя эту часть в моем интернете.конфиг решил мою проблему:

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

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

update-package Newtonsoft.Json -reinstall

Если вы работаете с какой-то подрывной деятельности: удалите проект и повторно загрузите его, он работал для меня :S

вы можете решить эту проблему, добавив ниже строки в интернете.конфигурационный файл.

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

что на самом деле помогло мне было отключить Resharper build и использовать опцию VisualStudio Re-Build в моем проекте.

У меня была такая же проблема на тестовом проекте, который имел ссылку на проект MVC 5. Это произошло после того, как я слился с проектом MVC 5. Я исправил это, установив обновления Visual studio 2012, как описано здесь в ответ Андре.

  • в вашей visual studio перейдите
    1. Инструменты> Расширения И Обновления
    2. выберите "обновления" в списке гармонью слева.
    3. Выберите "Обновления Продукта".
    4. обновление до последней версия

ни один из ответов, включая проверенный, не работал для меня.

решение было гораздо проще. Сначала я удалил ссылки из своего слоя шины. Затем удалил dll из проекта (чтобы убедиться, что он ушел), а затем переустановил JSON.NET от nuget packeges. И, самое сложное было, "выключение и снова включение".

Я только что перезапустил visual studio, и там это сработало!

Итак, если вы попробуете все возможное и все еще не можете решить проблема, просто попробуйте выключить и снова включить visual studio, это может помочь.

Я не знаю, почему, но в моем случае, даже если я удаляю папку bin из проекта, когда я строю проект, он копирует старую версию newtonsoft.json, я скопировал dll новой версии из папки пакетов, и она решает сейчас.

Если ни одна из этих работ, пожалуйста, проверьте этот ответ:

https://stackoverflow.com/a/12011221/150370

(TL; DR: удалить пространство имен xml из configuration тег в файл config. В противном случае перенаправление привязки будет проигнорировано)

в некоторых случаях, если вы удалите свой Bin и Obj папки решат эту проблему.

Я решил это путем удаления нижней версии Newtonsoft.формат JSON.dll в папке bin и добавлен Newtonsoft.формат JSON.dll V6.0.0.0 и удалил следующую веб-страницу.элементы конфигурации

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

простых шагов. (1)запустить "обновление-пакет Newtonsoft.JSON-переустановить" в диспетчере пакетов.

(2)Удалите ваш bin, включив просмотр скрытых файлов и удалив папку bin.

(3)Закройте visual studio и снова откройте его.

(4) Теперь снова запустите проект. Я считаю, что это должно быть ОК

Я попал в эту проблему, потому что у меня было: проект A (рабочий стол .exe), который относиться к проекту Б (портативный .файл DLL.) У A & B были разные версии JSON.Net и так возник конфликт грузчиков. Как только я сделал все версии JSON.net то же самое, это сработало. (Это в действительности то, что делают некоторые из решений выше - я просто вызываю, почему это работает)

Я боролся с этим недавно с более старым проектом.

мне удалось отследить проблему после проверки того, какая версия dll на самом деле была в папке bin.

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

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

У меня была точно такая же проблема, и библиотека Visual Studio 13 по умолчанию для меня была 4.5, поэтому у меня есть 2 решения, которые вынимают ссылку на это в файле webconfig. Это последнее средство, и оно действительно работает.

в сообщении об ошибке говорится, что в этом месте /Projects/foo/bar/bin/Newtonsoft есть проблема.формат JSON.файл DLL. где находится DLL! Базовая проверка свойств сказала мне, что это 4.5.0.0 или так, поэтому я изменил webconfig, чтобы посмотреть до 4.5 и использовать 4.5.

ни один из этих вариантов не работал для меня, в конце концов это было;

Тест > Настройки Теста > *.testrunconfig

мне пришлось добавить новую строку

<DeploymentItem filename="packages\Newtonsoft.Json.4.5.8\lib\net40\Newtonsoft.Json.dll" />

убедитесь, что путь и версию для установки.

У меня была та же проблема. Я создал проект веб-api, а затем обновил его с .net 4.5.1 до .net 4.6.1. Закрытие среды IDE, остановка IIS и удаление содержимого C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\ dir Исправлена проблема.

HTH

эта проблема не была решена для меня путем обновления пакетов NuGet или выполнения "чистого" проекта. Это было решено путем очистки папки " obj " вручную.

вот мое решение этой проблемы, убедитесь, что номер версии в appconfig или packageconfig совпадает с эталонной версией в ваших ссылках. Смотрите здесь

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

откройте powershell и введите следующую команду.

dotnet nuget locals all --clear

затем я закрыл Visual Studio, открыл его снова и ввел следующую команду в консоль диспетчера пакетов:

Update-Package

теперь NuGet должен восстановить все пакеты и снова заполнить кэш nuget.

после этого я смог построить и запустить свой dotnet core webapi в a Контейнер Linux.