Не удалось загрузить файл или сборку "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.
14 ответов:
всякий раз, когда у меня есть ошибка NuGet, такие как эти я обычно делаю следующие шаги:
- перейдите в папку пакеты в Проводнике Windows и удалите ее.
- откройте Visual Studio и перейдите в инструменты>Диспетчер Пакетов Библиотека> Настройки Диспетчера Пакетов и под элементом диспетчера пакетов с левой стороны есть кнопка" Очистить кэш пакетов". Нажмите эту кнопку и убедитесь, что флажок " Разрешить NuGet загрузка отсутствующих пакетов во время сборки" проверяется.
- очистить решение
- затем щелкните правой кнопкой мыши решение в обозревателе решений и включите NuGet Package Restore
- построить решение
выполнение всех этих шагов почти всегда восстанавливает все пакеты и dll, которые мне нужны для моей программы MVC.
EDIT >>>
для Visual Studio 2013 и выше, Шаг 2) следует читайте:
- откройте 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в консоли диспетчера пакетов. Базовая установка сама по себе не распознает проблему, но распознает, что пакет уже установлен и не перезаписывает его.я публикую этот ответ, потому что это происходит так редко, что я в конечном итоге гуглить и достичь этой страницы, прежде чем я помню, что я сделал в прошлый раз.
- удалить все ссылки на код System.Net.*
- Удалить:Пакет Microsoft.сеть САШ.WebApi и его зависимые.
- переустановить все : пакет Microsoft.сеть САШ.WebApi и его зависимые.
- очистить и перестроить свой проект
как первоначально было предложено в комментарии GeoMac и задокументировано на документы NuGet следующее работало для меня, когда ни один из других ответов не работал:
Tools / NuGet Package Manager / Package Manager Console
Update-Package -ProjectName MyProjectName -reinstall
в моем случае ни одно из вышеперечисленных решений не сработало. Я решил, щелкнув правой кнопкой мыши по ссылке
система.Чистая.Протоколу HTTP.Форматирование
из Visual studio и установка свойства Копировать Локально до правда.
Я надеюсь, что это как-то полезно.
для меня это было так же просто, как
- удалить
Microsoft.AspNet.WebApi.Clientиз папки пакеты в Проводнике Windows- Открыть Сервис > Диспетчер Пакетов NuGet > Консоль Диспетчера Пакетов
- Нажмите кнопку "Восстановить"
Как решить эту досадную ошибку для меня было просто закрыть 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
просто сделайте этот чистый проект и построить


Comments