У меня есть новый .Net 4.5.2 (проверено, что это целевая среда). Приложение веб-API (в VS 2015). Я ссылаюсь System.Net.Http
, и, как вы можете увидеть версии 4.0.0.0:HttpRequestMessage не найден, но System.Net.Http ссылается
В моем Filter/Attribute Я пытаюсь ссылаться HttpRequestMessage
, который находится в пространстве имен System.Net.Http
(я имею правильно, используя в в верхней части моего файла), но я получаю сообщение, что
Тип «HttpRequestMessage» определен в сборке, на которую не ссылаются. Вы должны добавить ссылку на сборку 'System.Net.Http, Version = 4.0.0.0, культура = нейтральной, PublicKeyToken = b03f5f7f11d50a3a'
И хотя я не могу ссылаться на этот класс, я может перейти к нему в Object Exploerer (я предполагаю, что это использует XML-файл с тем же именем рядом с .dll).
Я попытался (редактировать: как и обычный перезапуск VS и перестраивает и т.д.):
- Удаление и повторное добавление ссылки (с обеих рамок и Extensions - хотя я уверен, что это должен был быть версией Framework, я получал desparate)
- Установка из Nuget и ссылка на версию в моей локальной папке , которая, казалось, просто по умолчанию возвращалась к общесистемной версии.
- Переустановка все мои зависимости в NuGet вечера с:
update-package -reinstall -ignoreDependencies
- Добавление сборки вручную в web.config Добавление сборки вручную в файл .csproj
[Edit: Решение:
ОК, я создал несколько новых проектов VS Web API (и решений), чтобы увидеть, могу ли я воспроизвести проблему. В конце я создал новую папку «Фильтры», создал новый класс Filter
, скопировал содержимое моего исправленного оригинала, и было найдено имя HttpRequestMessage
. То же самое происходит и в другом направлении (мой фильтр был первоначально создан в папке App_Code), и он все еще работал. Я думаю, что, возможно, была невидимая ссылка на старый System.Net.Http
, который бросал гаечный ключ в произведениях, и хотя я, возможно, прокомментировал код, который его назвал, каким-то образом его запоминали. Это просто догадка. Но, в любом случае, его обработка до самых костяных костей и переход оттуда был окончательным подходом, который привел к решению.]
Может ли это быть VS просто глупо? Попробуйте перезапустить вашу среду IDE. –
Возможно, вам также потребуется предоставить переадресацию привязки для этой сборки в файле web.config/app.config для system.net.http. Не могли бы вы подтвердить, что он присутствует? – KnightFox
Попробуйте установить локальную копию, а затем восстановить пакеты. Если это не помогло установить определенную версию равным true. – ivamax9