Подтвердить что ты не робот

Не удалось загрузить файл или сборку "System.Net.Http.Formatting" или одну из его зависимостей. Система не может найти указанный путь

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

Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies. 
The system cannot find the path specified.

Я googled, но не могу найти решение. Я использую .NET 4.5.

Это не может быть DLL файл, потому что я использую .Net 4.5.

4b9b3361

Ответ 1

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

  1. Перейдите в папку пакетов в проводнике Windows и удалите ее.
  2. Откройте Visual Studio и выберите "Инструменты"> "Диспетчер пакетов библиотеки"> "Настройки диспетчера пакетов". В левой части пункта "Диспетчер пакетов" есть кнопка "Очистить кэш пакета". Нажмите эту кнопку и убедитесь, что флажок "Разрешить NuGet загружать отсутствующие пакеты во время сборки" установлен.
  3. Чистый раствор
  4. Затем щелкните правой кнопкой мыши решение в обозревателе решений и включите восстановление пакета NuGet.
  5. Постройте решение
  6. Перезапустите Visual Studio

Выполнение всех этих шагов почти всегда восстанавливает все пакеты и DLL, которые мне нужны для моей программы MVC.


РЕДАКТИРОВАТЬ >>>

Для Visual Studio 2013 и выше, шаг 2) должен выглядеть следующим образом:

  1. Откройте Visual Studio и выберите "Инструменты"> "Параметры"> "Диспетчер пакетов NuGet". Справа находится кнопка "Очистить кэш пакета". Нажмите эту кнопку и убедитесь, что установлены флажки "Разрешить NuGet загружать отсутствующие пакеты" и "Автоматически проверять отсутствующие пакеты во время сборки в Visual Studio".

Ответ 2

  • Удалите все ссылки на System.Net.*

  • в окне пакета,

    Install-Package Microsoft.AspNet.WebApi.Client

  • Очистите и перестройте проект

Ответ 3

Я нашел дополнительный

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
  </dependentAssembly>

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

Ответ 4

user3919888 указал мне в правильном направлении, но мне нужно было запустить Update-Package -reinstall Microsoft.AspNet.WebApi.Client в консоли Package-Manager. Базовая установка сама по себе не распознает проблему, но распознает, что пакет уже установлен и не перезаписывает его.

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

Ответ 5

Удаление следующих строк из web.config решило мою проблему. Обратите внимание, что в этом проекте я не использовал компоненты WebApi. Поэтому для других это решение может работать не так, как ожидалось.

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>

Ответ 6

  1. Удалите все ссылки на код для System.Net.*
  2. Удалите: пакет Microsoft.AspNet.WebApi и его зависимости.
  3. Переустановите все: пакет Microsoft.AspNet.WebApi и его зависимости.
  4. Очистите и восстановите ваш проект

Ответ 7

Для тех, кто использует проект .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, но он действительно сэкономил мне время, сначала проверив это, вместо того чтобы делать ответы с наибольшим количеством голосов.

Ответ 8

Как первоначально было предложено в комментарии GeoMac и задокументировано на NuGet docs Следующие работы работали для меня, когда ни один из других ответов не работал:

Инструменты/Диспетчер пакетов NuGet/Консоль диспетчера пакетов

Update-Package -ProjectName MyProjectName -reinstall

Ответ 9

В моем случае ни одно из вышеперечисленных решений не работало. Я решил, щелкнув правой кнопкой мыши ссылку

System.Net.Http.Formatting

из Visual studio и установите для свойства Копировать локальную значение true.

Я надеюсь, что это так или иначе полезно.

Ответ 10

Для меня это было так просто, как

  • Удалить Microsoft.AspNet.WebApi.Client из папки пакетов в проводнике Windows
  • Откройте Инструменты > Диспетчер пакетов NuGet > Консоль диспетчера пакетов
  • Нажмите кнопку "Восстановить"

Ответ 11

Что решила эта неприятная ошибка для меня, так это просто закрыть Visual Studio и снова открыть ее. Затем перестройте решение, и все это сработало снова. Извините за ответ дерьма, но я думаю, что это стоит ответа, потому что он решил это для меня.

Ответ 12

В моем случае ни одно из вышеперечисленных действий, однако, заменив 5.2.3.0 на 4.0.0.0, не решило проблему.

Ответ 13

Я столкнулся с той же проблемой, потому что

System.Net.Http.Formatting

Версия, написанная внутри webconfig, была 5.0.3, но внутри папки bin библиотека dll System.Net.Http.Formatting была 4.0.2.

так что я просто заменил на тот же, что и внутри корзины

enter image description here

enter image description here

просто сделайте этот чистый проект и постройте

Ответ 14

Возможно, вам нужно установить ссылку на библиотеку как "Скопировать локально = True" в диалоговом окне свойств. На визуальной студии нажмите "ссылки", затем щелкните правой кнопкой мыши по отсутствующей ссылке, в свойствах щелчка контекстного меню вы увидите локальную настройку копирования.

Ответ 15

Для меня добавление нескольких строк ниже в WebApi.config работает, так как после обновления новый пакет nuget не работает

var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;

Не забудьте добавить пространство имен:

using Newtonsoft.Json.Serialization; 
using Newtonsoft.Json;

Ответ 16

Что я сделал, чтобы решить эту проблему

  1. Зайдите в менеджер пакетов NuGet.

  2. Выберите Обновления (на левой панели)

  3. Обновление компонентов WebApi

  4. После этого проект запустился без ошибок.

Ответ 17

VS2019: Инструменты → Диспетчер пакетов Nuget → Настройка диспетчера пакетов → в разделе Восстановление пакетов, отметьте 2 варианта. После этого перейдите в папку пакетов проекта и удалите все дочерние папки внутри (чтобы больше не было ошибок). Затем перестройте решение, Nuget снова загрузит все пакеты, и проект должен запуститься без каких-либо ссылок.

Ответ 18

У меня была проблема с проектом ASP.NET в VS 2019.

Другим симптомом было то, что некоторые ссылки (System.Web.Http) были отмечены как неисправные в списке ссылок проекта (обозреватель решений)

Мое решение:

  1. Удалите ошибочные ссылки в Project → References (щелкните правой кнопкой мыши,...)
  2. построить
  3. Перейдите к ошибкам сборки "Не удалось найти тип или имя пространства имен [...]" или аналогичные
  4. Используйте "Показать возможные исправления" → Установить пакет

Причина:

Глядя на разницу в файле csproj, я увидел причину проблемы. Кто-то смог сослаться на DLL в папке с программным файлом Windows!

<Reference Include="System.Web.Http">
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.WebApi.Core.4.0.30506.0\lib\net40\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>