Не удалось загрузить файл или сборку " Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed ' или одна из его зависимостей
у меня есть проект WinJS, который ранее был построен на Windows 8.1 с использованием VS 2013.
недавно я обновил этот проект до Universal Windows 10, создав пустой проект JavaScript Universal windows 10, а затем добавил Все мои файлы из старого проекта.
у меня есть компоненты среды выполнения Windows, а также библиотека классов для SQLite.
я добавил универсальный компонент среды выполнения Windows и универсальную библиотеку классов и скопировал все мои файлы из старого проекта в соответствующие места.
как-то мне удалось удалить все ошибки построения.
Я установил все необходимые SQLite-net, SQLite для универсальной платформы Windows, Newtonsoft и т. д.
но когда я запускаю приложение и вызываю собственный метод в компоненте среды выполнения Windows, он дает какие-то странные ошибки как:
An exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.ni.dll but was not handled in user code.
Additional information: Could not load file or assembly 'Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
версия Newtonsoft: 9.0.1
мой .в JSON файл компонента среды выполнения Windows имеет следующее:
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
"Newtonsoft.Json": "9.0.1"
},
"frameworks": {
"uap10.0": {}
},
"runtimes": {
"win10-arm": {},
"win10-arm-aot": {},
"win10-x86": {},
"win10-x86-aot": {},
"win10-x64": {},
"win10-x64-aot": {}
}
}
моя версия Visual Studio:
Я попытался удалить все Newtonsoft json и переустановить его, но не повезло.
10 ответов
Я сделал базовую демонстрацию и воспроизвел эту проблему. Похоже, что компоненту WinRT не удалось найти правильную сборку Newton.Json
. Временно обходной путь состоит в том, чтобы вручную добавить . Вы можете достичь этого, выполнив следующие шаги:
Правой Кнопкой Мыши ссылки-> добавить ссылку->обзор...-> Найти C:\Users\.nuget\пакеты\Newtonsoft.Json\9.0.1\lib \ portable-net45+wp80 + win8+wpa81\Newtonsoft.формат JSON.dll - >Нажмите кнопку Добавить.
восстановить проект и запуск компонента среды выполнения. Эта ошибка должна исчезнуть.
У меня тоже была такая же проблема, чтобы решить эту проблему, проверьте ссылки вашего проекта, если версия Newtonsoft.В JSON был обновлен (вероятно, нет), затем удалите его и проверьте свой либо Web.config или App.config wheter элемент dependentAssembly был обновлен следующим образом:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
после этого, перестроить проект снова (the dll будет заменено на правильное версия)
У меня была аналогичная проблема с новым ASP.NET основное приложение некоторое время назад. Оказывается, одна из упомянутых библиотек использовала версию Newtonsoft.JSON, который был ниже, чем 9.0.0.0. Поэтому я обновил версию для этой библиотеки, и проблема была решена. Не уверен, что вы сможете сделать то же самое здесь
я испытывал подобные проблемы с моим ASP.NET основные проекты. Происходит то, что происходит .файл конфигурации в папке bin / debug-генерируется следующим образом:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="6.0.0.0" newVersion="9.0.0.0" />
<bindingRedirect oldVersion="10.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
Если я вручную изменю второй bindingRedirect на это, он работает:
<bindingRedirect oldVersion="9.0.0.0" newVersion="10.0.0.0" />
Не уверен, почему это происходит.
Я использую Visual Studio 2015 с .NET Core SDK 1.0.0-preview2-1-003177.
я использую Visual Studio 2013 С Обновлением 2. В моем случае у меня есть веб-проект и проект веб-Api, проект модульного тестирования и другие библиотеки классов в одном решении.
Я потратил пару дней, чтобы решить эту проблему. Ниже приведено пошаговое решение, которое я нашел.
- Правой Кнопкой Мыши на Web Api. Выберите"установить как StartUp Project"
- Правой Кнопкой Мыши на Web Api проект. Перейти к свойства (Alt + Enter).
- на вкладке Приложения в меню левой стороны выберите приложение
- найти целевой платформы. Измените его на 4.5.1 и сохранить. Однако он показывает ошибку в окне "список ошибок". После перестроения ошибки нет.
-
удалить все
Newtonsoft.Json
пакеты из решения, используя ниже запрос от Консоль Диспетчера Пакетов (to получить его Вид > Другое Окно > Консоль Диспетчера Пакетов ).
удалить-пакет newtonsoft.json-force
-
переустановить
Newtonsoft.Json
С Консоль Диспетчера Пакетов
установить-пакет newtonsoft.в JSON
- если у вас есть последние обновления для Visual Studio 2013, Вы можете не столкнуться с этой проблемой. Как я использую Update 2, Итак, при попытке установить
Newtonsoft.Json
, я столкнулся со следующей ошибкой.
В 'Newtonsoft.Пакет Json 10.0.3 ' требует версии клиента NuGet '2.12' или выше, но текущая версия NuGet i s '2.8.50313.46'
- чтобы решить эту проблему, нужно обновить Консоль Диспетчера Пакетов. Надо
Инструменты > Расширения и обновления... > в левой панели.. выбирать Обновления > Галерея Visual Studio.
обновление на Расширение Менеджера Пакетов NuGet. Следуйте шагам, которые последуют за этим.
Visual Studio примет перезагрузка после этого.
выполнить Шаг 6 снова.
после установки пакетов.config будет добавлен с этим ниже линия
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net451" />
после установки web.config будет добавлен с этим ниже строк
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
он будет успешно выполнен, если нет другой ошибки.
нам потребовался день, чтобы решить эту проблему. Решение вынуждает ваш веб-сервис использовать версию 11.0.0 в вашем интернете.конфигурационный файл.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
</dependentAssembly>
</assemblyBinding>
в моем случае это была проблема с конфигурационным файлом web.конфиг на моей машине, когда я обновил версию newton VS, автоматически исправил мою сеть.файл конфигурации для указания новой версии. Когда я загрузил его в производство существующей сети.config указывал на старую версию.
Как только я обновил интернет.config он снова начал работать.
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
</dependentAssembly>
смог решить эту проблему в моем asp.net проект mvc путем обновления моей версии Newton.JSON (старая версия = 9.0.0.0 до новой версии 11.0.0.0) Usign Package Manager.
Я думаю, что AutoCAD захватил мой. Решение, которое сработало для меня, было захватить его обратно. Я получил это от https://forums.autodesk.com/t5/navisworks-api/could-not-load-file-or-assembly-newtonsoft-json/td-p/7028055?profile.language=en - да, интернет работает таинственным образом.
// in your initilizer ...
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler);
.....
private Assembly MyResolveEventHandler(object sender, ResolveEventArgs args)
{
if (args.Name.Contains("Newtonsoft.Json"))
{
string assemblyFileName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\Newtonsoft.Json.dll";
return Assembly.LoadFrom(assemblyFileName);
}
else
return null;
}