当前上下文中不存在HttpUtility。

107

编译C#应用程序时出现此错误。看起来是微不足道的错误,但我无法解决它。

我的设置为Windows 7 64位。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
你的目标是Client Profile吗? - SLaks
10个回答

208

您需要添加System.Web引用;

  1. 在“解决方案资源管理器”中右键单击“引用”。
  2. 选择“添加引用”。
  3. 检查是否选中“.NET”选项卡。
  4. 搜索并添加“System.Web”。

使用VS2012控制台应用程序,目标为.NET Framework 4.5。这个问题已经解决了。 - Kyle
即使有目标,仅添加引用对我也起作用。谢谢lxk613。 - João Bruno Abou Hatem de Liz
太棒了!这就是答案。 - Alper
我的解决方案资源管理器树中不包含“引用”。 - Paul Gorbas
如果您正在使用Azure函数,请在文件顶部添加#r "System.Web"。 - Irshad Mohamed
谢谢您节省了我的时间。 :-) - Arsman Ahmad

91

你可能正在针对客户端配置文件进行开发,其中System.Web.dll不可用。

您可以在项目的属性中将目标设置为完整框架。


13
哇!那在哪里指定的?我应该在哪里读到这个信息?谢谢。 - Shaihi
我已经在项目属性中设置了完整的框架,但问题仍然存在。 - Ghasem
@AlexJolig:确保你有引用和命名空间。 - SLaks
@blackholeearth0_gmail:有什么问题吗?你的目标是什么? - SLaks
我将项目从.NET2转换为.NET4。仅更改目标框架无法解决问题。我还需要添加dll。lxk613的答案更好地解释了这一点,并显示了我需要做的来解决问题。 - bh_earth0

18

SLaks已经给出了正确的答案...但是让我稍微具体一些,这样像我这样被这个问题困扰而且找不到答案的人也能轻松找到解决方法:

项目 -> 属性 -> 应用程序 -> 目标框架 -> 选择 ".Net Framework 4"

然后项目将会保存并重新加载。


6
即使针对完整框架,我仍然遇到了错误!但是将System.Web.dll添加为引用就可以解决。 - SteveCav
当然,确保在相关文件中添加 System.WebSystem.Web.Mvc - TankorSmash

15
为了解决这个问题,请前往以下路径: Project-->属性-->应用程序-->目标框架 将框架更改为“.NET Framework 4”。 一旦您执行此操作,项目将关闭并重新打开。 这应该解决错误。 (但由于某种原因@Karan Modi的答案没有...)
接下来,在解决方案资源管理器中右键单击引用选项卡,然后选择添加引用, 选择“System.Web”。 (直接通过“using System.Web;”声明命名空间似乎不够...你必须将它添加到解决方案资源管理器中...我不明白为什么-这并不奇怪,因为我是一个cobol程序员..)

12

按照上面的答案进行操作后,执行如下步骤:

项目 -> 属性 -> 应用程序 -> 目标框架 -> 选择 ".Net Framework 4"

但仍然不起作用,直到我执行以下操作:
项目 -> 添加引用
并选择 System.web。 随后一切都可以正常工作。


已经有人在两年前提供了相同的解决方案。请在发布自己的解决方案之前先检查现有的解决方案。这个问题太旧了,原始发布者不太可能注意到你的回复。 - Techie
似乎@lxk613的回答 - Shaihi

8
为了解决这个问题,请按照以下路径进行操作:
项目-->属性-->应用程序-->目标框架,
将框架更改为“.NET Framework 4”。
完成后,该项目将关闭并重新打开。
这应该可以解决错误。

在Mac上,由于Mono的存在,目标框架最高只能到.NET 2。我该如何解决这个问题? - Chris M

4
将 System.Web 添加到项目引用中。

1

为我解决问题的是将对Sysem.Web.Dll的引用添加进来。


0

按照以下步骤进行操作,它可以正常工作:

添加引用:

system.net
system.web

还要包括命名空间

using system.net
using system.web

0
我曾经遇到过同样的问题,我的解决方法是从 Microsoft.NET framework 中复制 web.dll 文件,然后粘贴到项目的根目录中,最后将 dll 引用添加到应用程序中,这样就解决了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接