106 votes

HttpUtility n'existe pas dans le contexte actuel

J'obtiens cette erreur lors de la compilation d'une application C#. Cela semble être une erreur triviale, mais je n'arrive 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ée à l'adresse suivante C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0 mais il y a un symbole d'exclamation jaune et je reçois toujours l'erreur ci-dessus. J'ai également le using System.Web déclaration.

Qu'est-ce que je fais de mal ?


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

2 votes

Ciblez-vous le profil du client ?

205voto

lxk613 Points 591

Vous devez ajouter le System.Web référence ;

  1. Cliquez avec le bouton droit de la souris 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".

0 votes

Application Console VS2012 utilisant le ciblage .NET Framework 4.5. Ceci a été résolu.

0 votes

Même avec la cible, seul l'ajout de la référence a fonctionné pour moi. Merci lxk613

0 votes

Bingo ! C'est la réponse.

91voto

SLaks Points 391154

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

Vous pouvez cibler le cadre complet dans le projet Propriétés .

13 votes

Bingo ! Où est-ce que c'est spécifié ? Où est-ce que je devais lire cela ? Merci.

0 votes

J'ai défini un cadre complet dans les propriétés du projet, mais le problème persiste.

0 votes

@AlexJolig : Assurez-vous que vous avez la référence et l'espace de nom.

18voto

Someone Somewhere Points 8361

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

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

le projet sera alors enregistré et rechargé.

6 votes

J'ai eu l'erreur même AVEC le cadre complet ciblé ! L'ajout de System.Web.dll comme référence a pourtant fonctionné.

0 votes

Et assurez-vous évidemment d'ajouter System.Web o System.Web.Mvc au fichier en question également.

15voto

JdB Points 51

Afin de résoudre ce problème, veuillez vous rendre au chemin suivant

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

et changez le Framework en ".NET Framework 4".

Une fois que vous aurez fait cela, le projet sera fermé et rouvert.

Cela devrait résoudre l'erreur

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

Ensuite, cliquez à droite 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 nom directement par "using 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....

8voto

Karan Modi Points 51

Afin de résoudre ce problème, veuillez vous rendre au chemin suivant

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

et changez le Framework en ".NET Framework 4".

Une fois que vous aurez fait cela, le projet sera fermé et rouvert.

Cela devrait résoudre l'erreur.

0 votes

Sur Mac, le Target Framework max (grâce à mono) est .NET 2. Comment puis-je résoudre ce problème ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X