HttpUtility не існує в поточному контексті


99

Я отримую цю помилку під час компіляції програми C #. Схоже на тривіальну помилку, але я не можу її обійти.

Моє налаштування - Windows 7 64 bit. Visual-Studio 2010 C # express B2Rel.

Я додав посилання на System.Web.dll, розташоване за адресою C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0, але воно має жовтий символ оклику, і я все ще отримую вищезазначену помилку. У мене також є using System.Webдекларація.

Що я роблю неправильно?


Оновлення: Отримавши швидку відповідь, яка вказує мені на першопричину, я трохи пошукав у Google, де вказано, що System.Web.dll - це повна структура. Я не знайшов такого посилання.
Для новачків, як я, цей блог добре узагальнює різницю між рамками (клієнтськими та повними). Я не зміг знайти місце, яке говорить про те, підтримується чи певний Dll у клієнтській системі чи ні. Я думаю, що знак оклику у Visual Studio повинен стати першим сигналом ...


2
Ви націлюєтесь на профіль клієнта?
— СЛАкс

Відповіді:


87

Ви, напевно, орієнтуєтесь на профіль клієнта, в якому System.Web.dllнедоступний.

Ви можете орієнтуватися на повний фреймворк у Властивості проекту .


13
Бінго! де це вказано? Де я мав це читати? Дякую.
— Шайхі

Я встановив повний фреймворк у Project Properties, але проблема існує.
— Алекс Джоліг

@AlexJolig: Переконайтеся, що у вас є посилання та простір імен.
— Слакс

@ blackholeearth0_gmail: У чому проблема? Що ви націлюєте?
— Слакс

я перетворив проект з .net2 на .net4. просто зміна Target Framework не вирішила проблему. мені також потрібно було додати DLL. це пояснено краще у відповіді lxk613 і показує, що мені потрібно зробити, щоб виправити проблему.
— bh_earth0

188

Вам потрібно додати System.Webпосилання;

  1. Клацніть правою кнопкою миші на "Посилання" в Провіднику рішень
  2. Виберіть "Додати посилання"
  3. Перевірте, чи вибрано вкладку ".NET".
  4. Шукайте та додайте "System.Web".

Додаток консолі VS2012 за допомогою націлювання .NET Framework 4.5. Це вирішено.
— Кайл

Навіть з цільовою метою мені працювало лише додавання посилань. Дякую lxk613
— Жоао Бруно Абу Хатем де Ліз

Бінго! Це відповідь.
— Альпер

Моє рішення Explorer Explorer не містить "Довідки"
— Пол Горбас,

якщо ви використовуєте функції Azure, додайте #r "System.Web" поверх файлу
— Іршад Мохамед,

17

SLaks має правильну відповідь ... але дозвольте мені бути дещо конкретнішим для таких людей, як я, яких це дратує і вони не можуть відразу знайти:

Проект -> Властивості -> Застосування -> Цільова рамка -> виберіть ".Net Framework 4"

тоді проект збереже та перезавантажить.


6
У мене виникла помилка навіть із цілим фреймворком! Додавання System.Web.dll як посилання працювало, хоча.
— SteveCav

І очевидно переконайтесь, що ви також додали System.Webабо System.Web.Mvcдо відповідного файлу.
— TankorSmash

15

Щоб вирішити це, будь ласка, перейдіть до наведеного нижче шляху

Проект -> Властивості -> Застосування -> TargetFramework

і змініть Framework на ".NET Framework 4".

Після цього проект закриється та знову відкриється.

Це повинно вирішити помилку

(але чомусь відповідь @Karan Modi не відповідає)

наступним клацніть правою кнопкою миші вкладку посилань у провіднику рішень та виберіть додати посилання,

виберіть "System.Web"

(оголошуючи простір імен безпосередньо за допомогою "System.Web;", здається, цього недостатньо ... вам доведеться додати його до провідника рішень ... я не можу зрозуміти, чому - що не дивно, бо я програміст коболів ..


12

Після виконання відповідей вище, і зробив

Проект -> Властивості -> Застосування -> Цільова рамка -> виберіть ".Net Framework 4"

Це все ще не спрацювало, поки я не пішов до
Project -> Add Reference
І вибраний System.web. І все, що працює, пов'язує чарівність.


Таке ж рішення хтось уже надав, 2 роки тому. Будь ласка, перевірте рішення, перш ніж публікувати свої. Питання занадто старе, і оригінальний плакат рідше помітить вашу відповідь.
— Течі

Схоже, відповідь @ lxk613
— Шайхі

8

Щоб вирішити це, будь ласка, перейдіть до наведеного нижче шляху

Проект -> Властивості -> Застосування -> TargetFramework

і змініть Framework на ".NET Framework 4".

Після цього проект закриється та знову відкриється.

Це повинно вирішити помилку.


на Mac, Target Framework max (завдяки mono) становить .NET 2. Як я можу вирішити там?
— Кріс М

4

Agrega System.web a las referencias del proyecto.

[Редагувати]

За даними Google Translate, це означає:

Додайте System.Web до посилань на проект.


1

У мене була така ж проблема, що і у мене, я скопіював web.dll з фреймворку Microsoft.NET, потім вставив у корінь проекту, потім додав рефлекс dll у додаток, він працював



0

Це спрацювало за наступним процесом:

Додати посилання:

system.net
system.web

також включіть простір імен

using system.net
using system.web
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.