У меня есть небольшое приложение MVC, которое я использую по практическим соображениям, но теперь я каждый раз сталкиваюсь с ошибкой при попытке отладки:
Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies.
The system cannot find the path specified.
Я погуглил, но не могу найти решение. Я использую .NET 4.5.
Это не может быть файл DLL, потому что я использую .Net 4.5.
c#
asp.net
.net
asp.net-mvc-4
Норрис
источник
источник
Ответы:
Всякий раз, когда у меня появляется ошибка NuGet, подобная этой, я обычно предпринимаю следующие шаги:
Выполнение всех этих шагов почти всегда восстанавливает все пакеты и DLL, которые мне нужны для моей программы MVC.
РЕДАКТИРОВАТЬ >>>
Для Visual Studio 2013 и выше, шаг 2) должен гласить:
источник
Удалить все ссылки на код
System.Net.*
в окне пакета,
Install-Package Microsoft.AspNet.WebApi.Client
Очистить и восстановить ваш проект
источник
Web.Config
bindingRedirect
дляSystem.Net.Http.Formatting
иSystem.Web.Http
к новой установленной предыдущей командой ... т.е. пошел от<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
до<bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
Я нашел лишний
в моем web.config. убрал это чтобы заставить его работать. некоторый другой пакет, который я установил, а затем удалил, вызвал проблему.
источник
user3919888 указал мне правильное направление, но мне нужно было запустить
Update-Package -reinstall Microsoft.AspNet.WebApi.Client
консоль Package-Manager. Сама базовая установка не распознает проблему, но распознает, что пакет уже установлен, и не перезаписывает его.Я отправляю этот ответ, потому что это случается так редко, что я в конечном итоге гуглю и попадаю на эту страницу, прежде чем вспоминаю, что делал в прошлый раз.
источник
Удаление следующих строк из
web.config
решенной моей проблемы. Обратите внимание, что в этом проекте я не использовал компоненты WebApi. Поэтому для других это решение может работать не так, как ожидалось.источник
Для тех, кто использует проект .NET Standard в сочетании с проектами .NET Framework :
Стандартным способом .NET пакеты, включенные в проект .NET Standard, будут правильно использоваться в других проектах .NET Core и .NET Standard.
Я имею в виду .NET Framework, если вы ссылаетесь на проект .NET Standard из проекта .NET Framework (MVC), вам необходимо вручную загрузить и установить те же пакеты nuget.
Таким образом, ответ на мой вопрос состоял в том, что мне пришлось загрузить и установить
Microsoft.AspNet.WebApi.Client
в веб-проекте (.NET Framework), который использует проект .NET Standard, гдеMicrosoft.AspNet.WebApi.Client
это необходимо. На самом деле, я уже установил это, но была разница в версии.Я просто добавляю этот ответ, чтобы другие могли видеть, что он может не отвечать непосредственно на вопрос OP, но он действительно сэкономил мне время, сначала проверив это, вместо того чтобы делать ответы с наибольшим количеством голосов.
источник
System.Net.*
Microsoft.AspNet.WebApi
и его зависимости.Microsoft.AspNet.WebApi
и его зависимости.источник
Как первоначально было предложено в комментарии GeoMac и задокументировано в документации NuGet, для меня не помогло следующее, когда ни один из других ответов не сработал:
Инструменты / Диспетчер пакетов NuGet / Консоль диспетчера пакетов
источник
В моем случае ни одно из вышеуказанных решений не сработало. Я решил, щелкнув правой кнопкой мыши на ссылку
из Visual studio и установив для свойства Copy Local значение true .
Я надеюсь, что это полезно как-то.
источник
Что решило эту досадную ошибку для меня, так это просто закрыть Visual Studio и открыть ее снова. Затем пересоберите решение, и все снова заработало. Извините за дерьмовый ответ, но я думаю, что он стоит ответа, потому что он решил его для меня.
источник
Для меня это было так просто, как
Microsoft.AspNet.WebApi.Client
из папки пакетов в проводнике Windowsисточник
В моем случае ничего из вышеперечисленного не сработало, однако замена 5.2.3.0 на 4.0.0.0 решила проблему.
источник
Я столкнулся с той же проблемой, потому что
Версия, написанная внутри webconfig, была 5.0.3, но внутри папки bin библиотека dll System.Net.Http.Formatting была 4.0.2.
так что я просто заменил на тот же, заданный внутри бен
просто сделайте этот чистый проект и постройте
источник
Возможно, вам нужно установить ссылку на библиотеку как «Копировать локально = True» в диалоговом окне свойств. В Visual Studio нажмите «ссылки», затем щелкните правой кнопкой мыши на отсутствующей ссылке, в контекстном меню выберите «Свойства», вы должны увидеть локальные настройки копирования.
источник
Для меня добавление нескольких ниже строки в WebApi.config работает, так как после обновления новый пакет nuget не работает
Не забудьте добавить пространство имен:
источник
Что я сделал, чтобы решить эту проблему
Зайдите в менеджер пакетов NuGet.
Выберите Обновления (на левой панели)
Обновление компонентов WebApi
После этого проект запустился без ошибок.
источник
VS2019: Инструменты -> Диспетчер пакетов Nuget -> Настройка диспетчера пакетов -> в разделе Восстановление пакетов, отметьте 2 варианта. После этого перейдите в папку пакетов проекта и удалите все дочерние папки внутри (чтобы больше не было ошибок). Затем перестройте решение, Nuget снова загрузит все пакеты, и проект должен запуститься без каких-либо ссылок.
источник
У меня была проблема с проектом ASP.NET в VS 2019.
Другим симптомом было то, что некоторые ссылки (System.Web.Http) были отмечены как неисправные в списке ссылок проекта (Solution Explorer)
Мое решение:
Причина:
Глядя на разницу в файле csproj, я понял причину проблемы. Кто-то сумел ссылаться на DLL в папке с программным файлом Windows!
источник