Проект Visual Studio 2012 Web API не будет запущен - не удается найти Newtonsoft.формат JSON
после запуска чистого решения и перестроения мой проект MVC 4 Web API перестает работать. Это не могу найти Newtonsoft.формат JSON.
Я знаю, что MS использует это как сериализатор JSON по умолчанию сейчас - но его нет в списке ссылок для проекта, и я не могу добавить его из NuGet, поскольку он говорит, что он уже установлен.
есть ли у кого-нибудь идеи о том, что может пойти не так?
полная трассировка стека:
[FileNotFoundException: Не удалось загрузить файл или сборку
'Newtonsoft.Json, Version=4.5.0.0, Culture=нейтральный,
PublicKeyToken=30ad4fe6b2a6aeed ' или одна из его зависимостей. Этот
система не может найти указанный файл.]
MvcWebRole1.WebApiApplication.Application_error для перехвата() в d:DataSource
Контролируемый
ПроектыgeoracegeoraceServerGeoRaceServerMvcWebRole1Global.асакс.cs: 70
[HttpException (0x80004005): не удалось загрузить файл или сборку
'Newtonsoft.Json, Version=4.5.0.0, Культура=нейтральный,
PublicKeyToken=30ad4fe6b2a6aeed ' или одна из его зависимостей. Этот
система не может найти указанный файл.]
Система.Сеть.HttpApplicationFactory.EnsureAppStartCalledForIntegratedmode(Объект HttpContext
контекст, приложение HttpApplication) +12838633
Система.Сеть.HttpApplication.RegisterEventSubscriptionsWithIIs(Указателя IntPtr
appContext, HttpContext context, MethodInfo [] обработчики) +175
Система.Сеть.HttpApplication.InitSpecial (состояние HttpApplicationState,
Объект methodinfo[] обработчики, IntPtr appContext, HttpContext context) +304
Система.Сеть.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr
appContext, HttpContext context) +404
Система.Сеть.Размещающий.PipelineRuntime.InitializeApplication(IntPtr
appContext) +475
[HttpException (0x80004005): не удалось загрузить файл или сборку
'Newtonsoft.Json, Version=4.5.0.0, Culture=нейтральный,
PublicKeyToken=30ad4fe6b2a6aeed ' или одна из его зависимостей. Этот
система не может найти указанный файл.]
Система.Сеть.Строки httpruntime.FirstRequestInit (HttpContext context) +12851296
Система.Сеть.Строки httpruntime.EnsureFirstRequestInit (контекст HttpContext)
Система +159.Сеть.Строки httpruntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest
WR, HttpContext context) +12679949
13 ответов:
ОК - нашел работу вокруг себя, разместив в случае, если кто-то получает палкой от этого г ошибка. Проблема в том, что вы не можете добавить ссылку NuGet, поскольку она уже включена в пакеты по умолчанию. Так...
- открыть пакеты.конфигурации
- удалить Newtonsoft.Запись в формате JSON.
- сохранить и построить
- добавить Newtonsoft.JSON с помощью NuGet.
- построить и запустить
пакета уже установленный NuGet, который вы хотите переустановить, просто введите следующую команду в Консоль Диспетчера Пакетов:
обновление в любом проекте:
Update-Package Newtonsoft.Json -Reinstallобновление в конкретном проекте
Update-Package Newtonsoft.Json -Reinstall -Project My.App
для меня единственное, что исправило эту ошибку, - это добавить недостающий раздел в мою сеть.конфигурационный файл, который я получил из этого ответа здесь:https://stackoverflow.com/a/20414714/940783
вот что мне нужно добавить:
<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>
Я объединил несколько вариантов, которые заявили другие участники SO, плюс новый.
во-первых, оказывается, что у Nuget 2.1 были некоторые проблемы, и эта проблема была зарегистрирована в ошибке и была исправлена в 2.2.2. Смотрите здесь: https://nuget.codeplex.com/workitem/3050
Итак, я сделал следующее:
- обновлена версия Nuget до 2.2.2 согласно ссылке
- удалены все ссылки на Json в моем проекте путем удаления из NUget (щелкните правой кнопкой мыши проект и найти пакет, и удалить (даже это не помогло)
- физически удалил файлы пакета с компьютера. Я нашел файлы пакетов здесь://projectdir / packages / Newtonsoft.JSON
- удаленные пакеты.конфигурационный файл из физического каталога (//имя_проекта/packages.config)
- как только все это было завершено, я снова добавил Newtonsoft через Nuget, а затем сделал перестройку, и это сработало.
У меня была такая же проблема (в VS2012). Никакой ответ не помог мне. Наконец я решил это так:
1) Перейдите в меню Сервис - > расширения и обновления здесь обновление (или установка) " Диспетчер пакетов NuGet" далее перейдите в раздел " Online "и установите" Quick add NuGet "и"NuGet References"
2) после insttal все в 1) в вашем проекте щелкните правой кнопкой мыши на "ссылки" и выберите " Управление пакетами Nuget" в разделе "установленные пакеты" найдите Json.NET. Нажмите кнопку Удалить - вы не можете сделать это сейчас, но он покажет вам то, что вы должны удалить сначала (некоторые ASP Web Api client). Поэтому удалите все это и попробуйте удалить "Json.NET-еще раз. Теперь идем в "онлайн" и установить "Json.NET", "ASP.NET веб-клиентские библиотеки API" и "ASP.NET веб-API клиентской службы".
3) в мировой.asax удалить строку " WebApiConfig.Регистрация (GlobalConfiguration.Конфигурация);"
построить решение и все будет в порядке.. Я надеюсь, что это может помочь кому-то :) гл
проверьте, если у вас был "старый стиль" (pre nuget) ссылка на JSON.NET указание на устаревшую локальную копию, встроенную в проект.
у меня был старый
Reference\Lib\JSON.NETкоторый был в моем ссылочном пути и получал приоритет.проверьте, что JSON.NET страница свойств указывает на ожидаемую версию пакета Nuget.
у меня была эта проблема на сборке Team Server, которая развернута в реальном времени. Я должен был исправить свое оригинальное решение и сделать чистую сборку, чтобы убедиться, что старый
Reference\Lib\DLL не был поднят.
в моем случае я проверил проект коллеги, который каким-то образом превратил мой Newtonsoft.Ссылка Json плохая-поэтому мне пришлось ее удалить. Щелкните правой кнопкой мыши проект - > Управление пакетами NuGet. В левой части нажмите кнопку "установленные пакеты" , затем выберите Json.NET и удалить его. В моем случае мне также пришлось удалить другие зависимые пакеты (Microsoft ASP.Net Web API и др.). Выберите "Online" с левой стороны и выполните поиск Json.Net, переустановите его.
У меня было то же FileNotFoundException и оказывается, что у меня уже есть ссылка на Newtonsoft.Json в моем проекте, но свойство" копировать локально " не было установлено в TRUE. Просто установите его в TRUE, чтобы dll копировалась в выходной каталог, если это и ваш случай.
Я проверил все, что было сказано здесь, и ничего не сработало. В моем случае у меня была папка такой путь.
- # Проекты / Web / App/...
# причина моей проблемы. Я удалил # и работал нормально.
что вызвало мою проблему с Newtonsoft.джсон был немного другим. Я разработал приложение для Windows, построенное против .Net 4.5. Позже я узнал, что среда клиента поддерживает только .Net 4.0. Я скопировал решение в новую область, чтобы сохранить работу .Net 4.5 и изменил свойства решения на Microsoft.Net 4.0. Я получил ошибку, что Newtonsoft.json не удалось найти, и я пропустил ссылку.
Я выполнил процедуры, указанные выше для удаления пакеты.config; удаление Newtonsoft.json; обеспечение того, что Newtonsoft.json был удален из каталога \packages; затем переустановка Newtonsoft.JSON с помощью NuGet. Я смог скомпилировать и запустить приложение с .Net 4.0
до этого пакеты.конфигурационный файл показал, что версия .Net, что Newtonsoft.целью json была .Net 4.5. Удаление и добавление Newtonsoft.json теперь имеет цель как .Net 4.0.
Я сделал это по ошибке, и он разобрался сам отлично.
запустив новый проект VS 2012, я использовал NuGet для установки Newtonsoft.JSON, как уже упоминалось, версия 4.5.6 уже установлена, и я был впечатлен, увидев, что это было удалено и установлено 4.5.10.
сладкий.
вы можете попробовать установить SocialAuth.Net пакет с флагом-IgnoreDependencies, затем установка зависимостей вручную и убедитесь, что вы устанавливаете только последнюю версию Json.Net библиотека.
затем во время выполнения SocialAuth.Net пакет будет уважать перенаправление и загрузку сборки Json.Net (v4. 5) вместо старой версии.
У меня была такая же проблема в VS2012 Express, и мне удалось установить его из
инструменты - > менеджер пакетов NuGet - > Управление пакетами NuGet для решения
там я нашел и установил Newtonsoft Json. Он не был установлен ни в одном из проектов решения на потом.
Comments