Не удалось загрузить файл или сборку "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.


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



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

918   14  

14 ответов:

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

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

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


EDIT >>>

для Visual Studio 2013 и выше, Шаг 2) следует читайте:

  1. откройте Visual Studio и перейдите к инструменты>опции>Менеджер Пакетов NuGet и на правой стороне есть кнопка "Очистить кэш пакета". Нажмите эту кнопку и убедитесь, что установлены флажки "разрешить NuGet загружать отсутствующие пакеты" и "автоматически проверять наличие отсутствующих пакетов во время сборки в Visual Studio".
  • удалить все ссылки на код System.Net.*

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

    Install-Package Microsoft.AspNet.WebApi.Client

  • очистить и перестроить свой проект

Я нашел дополнительную

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

удаление следующих строк из 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>

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

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

  1. удалить все ссылки на код System.Net.*
  2. Удалить:Пакет Microsoft.сеть САШ.WebApi и его зависимые.
  3. переустановить все : пакет Microsoft.сеть САШ.WebApi и его зависимые.
  4. очистить и перестроить свой проект

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

Tools / NuGet Package Manager / Package Manager Console

Update-Package -ProjectName MyProjectName -reinstall

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

система.Чистая.Протоколу HTTP.Форматирование

из Visual studio и установка свойства Копировать Локально до правда.

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

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

  1. удалить Microsoft.AspNet.WebApi.Client из папки пакеты в Проводнике Windows
  2. Открыть Сервис > Диспетчер Пакетов NuGet > Консоль Диспетчера Пакетов
  3. Нажмите кнопку "Восстановить"

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

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

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

для меня добавление нескольких ниже строки в WebApi.конфиг работает так как после обновления нового пакета nuget не получилось

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

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

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

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

система.Чистая.Протоколу HTTP.Форматирование

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

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

enter image description here

enter image description here

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

Comments

    Ничего не найдено.