HttpUtility n'existe pas dans le contexte actuel

99

J'obtiens cette erreur lors de la compilation d'une application C #. Cela ressemble à une erreur triviale, mais je ne peux pas la contourner.

Ma configuration est Windows 7 64 bits. Visual-Studio 2010 C # express B2Rel.

J'ai ajouté une référence à System.Web.dll situé à C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0, mais il a un symbole d'exclamation jaune et j'obtiens toujours l'erreur ci-dessus. J'ai aussi la using System.Webdéclaration.

Qu'est-ce que je fais mal?


Mise à jour: Après avoir obtenu la réponse rapide qui m'indique la cause première, j'ai cherché un peu dans Google où il indique que System.Web.dll est pour le cadre complet. Je n'ai pas trouvé une telle référence.
Pour les débutants comme moi, ce blog résume bien la différence entre les frameworks (client et complet). Je n'ai pas pu trouver un endroit indiquant si une certaine DLL est prise en charge dans le cadre client ou non. Je suppose que le point d'exclamation dans Visual Studio devrait être le premier signal ...

Shaihi
la source
2
Visez-vous le profil du client?
SLaks

Réponses:

87

Vous ciblez probablement le profil client, dans lequel System.Web.dlln'est pas disponible.

Vous pouvez cibler le cadre complet dans les propriétés du projet .

SLaks
la source
13
Bingo! où est-ce spécifié? Où étais-je censé lire ceci? Merci.
Shaihi
J'ai défini le cadre complet dans les propriétés du projet, mais le problème existe.
Alex Jolig le
@AlexJolig: Assurez-vous d'avoir la référence et l'espace de noms.
SLaks le
@ blackholeearth0_gmail: Quel est le problème? Que visez-vous?
SLaks
J'ai converti le projet de .net2 en .net4. le simple changement de Target Framework n'a pas résolu le problème. j'avais besoin d'ajouter la DLL aussi. cela est mieux expliqué dans la réponse de lxk613 et montre ce que je dois faire pour résoudre le problème.
bh_earth0
189

Vous devez ajouter la System.Webréférence;

  1. Cliquez avec le bouton droit sur la «référence» dans l'Explorateur de solutions
  2. Choisissez "Ajouter une référence"
  3. Vérifiez que l'onglet ".NET" est sélectionné.
  4. Recherchez et ajoutez "System.Web".
lxk613
la source
Application console VS2012 utilisant le ciblage .NET Framework 4.5. Cela a résolu.
Kyle
Même avec la cible, seule l'ajout de références a fonctionné pour moi. Merci lxk613
João Bruno Abou Hatem de Liz
Bingo! Voilà la réponse.
Alper
Mon arbre de l'explorateur de solutions ne contient pas de «référence»
Paul Gorbas
si vous utilisez les fonctions Azure, ajoutez #r "System.Web" en haut de votre fichier
Irshad Mohamed
17

SLaks a la bonne réponse ... mais permettez-moi d'être un peu plus précis pour les personnes, comme moi, qui sont ennuyées par cela et ne peuvent pas la trouver tout de suite:

Projet -> Propriétés -> Application -> Framework cible -> sélectionnez ".Net Framework 4"

le projet sera alors enregistré et rechargé.

Quelqu'un quelque part
la source
6
J'ai eu l'erreur même AVEC le framework complet ciblé! L'ajout de System.Web.dll comme référence a cependant fonctionné.
SteveCav
Et assurez-vous évidemment d'ajouter System.Webou System.Web.Mvcau fichier en question aussi.
TankorSmash
15

Afin de résoudre ce problème, veuillez accéder au chemin ci-dessous

Projet -> Propriétés -> Application -> TargetFramework

et changez le Framework en «.NET Framework 4».

Une fois que vous faites cela, le projet se fermera et se rouvrira.

Cela devrait résoudre l'erreur

(mais pour une raison quelconque, la réponse de @Karan Modi ne le fait pas ...)

Cliquez ensuite avec le bouton droit sur l'onglet références dans l'explorateur de solutions et choisissez ajouter une référence,

choisissez "System.Web"

(déclarer l'espace de noms directement en "utilisant System.Web;" ne semble pas être suffisant ... vous devez l'ajouter à l'explorateur de solutions ... je ne comprends pas pourquoi - ce qui n'est pas surprenant car je suis un programmeur cobol ..

JdB
la source
12

Après avoir suivi les réponses ci-dessus, et fait

Projet -> Propriétés -> Application -> Framework cible -> sélectionnez ".Net Framework 4"

Cela n'a toujours pas fonctionné jusqu'à ce que je sois allé à
Project -> Add Reference
Et sélectionné System.web. Et tout a fonctionné lier un charme.

Maubeh
la source
La même solution a déjà été fournie par quelqu'un, il y a 2 ans. Veuillez vérifier les solutions avant de publier les vôtres. La question est trop ancienne et l'affiche originale est moins susceptible de remarquer votre réponse.
Techie
On dirait la réponse de @ lxk613
Shaihi
8

Afin de résoudre ce problème, veuillez accéder au chemin ci-dessous

Projet -> Propriétés -> Application -> TargetFramework

et changez le Framework en «.NET Framework 4».

Une fois que vous faites cela, le projet se fermera et se rouvrira.

Cela devrait résoudre l'erreur.

Karan Modi
la source
sur Mac, Target Framework max (grâce à mono) est .NET 2. Comment puis-je résoudre là-bas?
Chris M
4

Agrega System.web a las referencias del proyecto.

[Éditer]

Selon Google Translate, cela se traduit par:

Ajoutez System.Web aux références de projet.

John J.
la source
1

J'ai eu le même problème que ce que j'ai fait, j'ai copié web.dll à partir du framework Microsoft.NET, puis collez à la racine du projet, puis ajoutez la référence dll à l'application, cela a fonctionné

Shaahin
la source
1

L'ajout d'une référence à Sysem.Web.Dll l'a fait pour moi.

Ayo Adesina
la source
0

Cela a fonctionné en suivant le processus:

Ajouter une référence:

system.net
system.web

incluez également l'espace de noms

using system.net
using system.web
Bijay Budhathoki
la source