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

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

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

    <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 и удалить содержимое моей временной папки

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

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

редактировать

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

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

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

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

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

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

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

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

=== = информация о состоянии предварительной привязки === LOG: DisplayName = Newtonsoft.формат JSON (Частичный) WRN: для сборки была предоставлена информация о частичной привязке: WRN: имя сборки: Newtonsoft.JSON / домен ID: 2 WRN: частичная привязка происходит, когда предоставляется только часть отображаемого имени сборки. WRN: это может привести к загрузке связующего неправильная сборка. WRN: рекомендуется предоставить полностью определенный текстовый идентификатор для сборки, WRN: состоит из простого имени, версии, культуры и токена открытого ключа. WRN: см. whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 для получения дополнительной информации и общих решений этой проблемы. Журнал: Appbase = файл:/ / / c: / пользователи / пользователь / документы / visual studio 2013 / проекты/foo / bar/ LOG: начальный PrivatePath = c:usersuserdocumentsvisual студия 2013проектыfoobarbin Вызов сборки: (неизвестно). === Журнал: данная привязка начинается в контексте загрузки по умолчанию. LOG: использование файла конфигурации приложения: c:usersuserdocumentsvisual студия 2013проектыfoobarweb.конфиг LOG: использование файла конфигурации хоста: C:UsersuserDocumentsIISExpressconfigaspnet - ... конфиг Журнал: использование файла конфигурации компьютера из C:WindowsMicrosoft.NETFrameworkv4.0.30319configmachine.config. Журнал: политика не применяется к ссылке в настоящее время (частная, пользовательская, частичная или привязка сборки на основе местоположения). Журнал: попытка загрузки нового файла URL:/ / / C: / Users / user / AppData / Local/Temp / 1 / Temporary ASP.NET файлы / root/48686d37/9d7a6572 / Newtonsoft.формат JSON.файл DLL. Журнал: попытка загрузки нового файла URL:/ / / C: / Users / user / AppData / Local/Temp / 1 / Temporary ASP.NET Файлы / root/48686d37/9d7a6572 / Newtonsoft.В JSON/Newtonsoft.формат JSON.файл DLL. Журнал: попытка загрузки нового URL-файла:///c:/пользователи/пользователь/документы/visual studio 2013/проекты/foo/bar / bin / Newtonsoft.формат JSON.файл DLL. LOG: использование файла конфигурации приложения: c:usersuserdocumentsvisual студия 2013проектыfoobarweb.конфиг LOG: использование файла конфигурации хоста: C:UsersuserDocumentsIISExpressconfigaspnet - ... конфиг Журнал: использование файла конфигурации компьютера из C:WindowsMicrosoft.NETFrameworkv4.0.30319configmachine.config. Журнал: перенаправление найдено в файле конфигурации приложения: 4.5.0.0 перенаправлено на 6.0.1.0. Журнал: ссылка на пост-политику: Newtonsoft.Json, версия=6.0.1.0, культура=нейтральная, PublicKeyToken=30ad4fe6b2a6aeed Журнал: попытка загрузки нового файла URL:/ / / C: / Users / user / AppData / Local/Temp / 1 / Temporary ASP.NET файлы / root/48686d37/9d7a6572 / Newtonsoft.формат JSON.файл DLL. LOG: попытка загрузки нового URL файл:/ / / C: / пользователи / пользователь / AppData / локальный / Temp / 1 / временный ASP.NET файлы / root/48686d37/9d7a6572 / Newtonsoft.В JSON/Newtonsoft.формат JSON.файл DLL. Журнал: попытка загрузки нового URL-файла:///c:/пользователи/пользователь/документы/visual studio 2013/проекты/foo/bar / bin / Newtonsoft.формат JSON.файл DLL. WRN: сравнение имени сборки привело к несоответствию: основная версия ERR: не удалось завершить настройку сборки (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.nLoad (имя файла ассемблера, строка кодовой базы, Assemblysecurity доказательства, runtimeassembly locationHint, StackCrawlMark & stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +34 Система.Отображение.RuntimeAssembly.InternalLoadAssemblyName(параметр assemblyref Имя_сборки, свидетельствует значение параметра assemblysecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, pPrivHostBinder указателя IntPtr, логическое throwOnFileNotFound, логическое forIntrospection, логическое suppressSecurityChecks) +152 Система.Отображение.RuntimeAssembly.InternalLoad (строка assemblyString, доказательство assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77 Система.Отображение.RuntimeAssembly.InternalLoad (string assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +16 Система.Отображение.Собрание.Нагрузка (строка assemblyString) +28 Система.Сеть.Конфигурация.CompilationSection.LoadAssemblyHelper (string assemblyName, Boolean starDirective) +38

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

[HttpException (0x80004005): не удалось загрузить файл или сборку " Newtonsoft.Json, Версия=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 ответов


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

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"

в моих пакетах.файла config я:

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

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

Я работаю в среде со строгой структурой, и команда framework часто расстраивает управление версиями с помощью разных 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 для решения (меню "выкл. сервис" или щелкните правой кнопкой мыши решение), чтобы обновить 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.


комментируя эту часть в моем интернете.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>

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

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 и использовать опцию повторной сборки VisualStudio в моем проекте.


У меня была такая же проблема на тестовом проекте, который имел ссылку на проект 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 новой версии из папки packages, и теперь он решает.


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

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) см. проект B (переносной .файл DLL.) У A & B были разные версии JSON.Net и вот возник конфликт. Однажды я сделал все версии JSON.net то же самое, это сработало. (Это фактически то, что делают некоторые из решений выше - я просто вызываю, почему это работает)


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

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

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

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


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

в сообщении об ошибке говорится, что есть проблема в этом месте/проекты/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" />

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


У меня была та же проблема. Я создал проект Web 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 core и сумел ее исправить, очистив кэш NuGet.

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

dotnet nuget locals all --clear

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

Update-Package

NuGet, который теперь должен восстановить все пакеты и снова popultes кэша NuGet для.

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