错误“名称空间'System.Web'中不存在类型或名称空间名称'Script'”背后是不是有解释

Posted

技术标签:

【中文标题】错误“名称空间\'System.Web\'中不存在类型或名称空间名称\'Script\'”背后是不是有解释【英文标题】:Is there an explanation behind the error "The type or namespace name 'Script' does not exist in the namespace 'System.Web'"错误“名称空间'System.Web'中不存在类型或名称空间名称'Script'”背后是否有解释 【发布时间】:2012-05-07 15:56:30 【问题描述】:

我在 Visual Studio Express 2010 中创建了一个“ASP.NET 空网站”。

在 App_Code 的代码文件中,我有一行“using System.Web.Script.Serialization;”

当我将文件推送到服务器时,出现以下错误:

异常消息:c:\inetpub[....]\Extensions.cs(10):错误 CS0234: 命名空间中不存在类型或命名空间名称“脚本” 'System.Web'(您是否缺少程序集引用?)

(服务器运行 Windows Server 2008,安装了 IIS 7 和 ASP.NET 4.0。)

因为这是一个网站,而不是一个网络项目,所以我无法使用此处推荐的“发布”功能:The type or namespace name 'Script' does not exist in the namespace 'System.Web'

最后,经过一番挖掘,我发现这个命名空间包含在 System.Web.Extension 程序集中,我必须手动通过 web.config 包含它:

<compilation debug="true" targetFramework="4.0">
    <assemblies>
        <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </assemblies>
</compilation>

那么,我的问题:有没有更好的方法来解决这个问题?

由于我的本地项目不需要这些,我如何首先确定我需要手动引用哪些程序集,其次,我如何获得进行引用所需的信息(即,我如何获得PublicKeyToken)?

更新

因为这是一个网站而不是一个 Web 项目,所以我的参考列表不会显示直到我手动将它们添加到 Web.Config。

因此,在这种情况下,选择“复制本地”为“真”是行不通的。

【问题讨论】:

【参考方案1】:

看起来您的提供商在 GAC 中没有 dll System.Web.Extensions

命名空间System.Web.ScriptsSystem.Web.Extensions.dll 的一部分。

如果你这样做,你可以解决你的问题。

    在您的项目引用中选择System.Web.Extensions 转到属性选项卡并将Copy Local 设置为true

这可确保您也部署此 dll。

【讨论】:

如果我在 VS Express 中查看网站,当我点击查看参考文献时,列表是空的(除非我先手动将它们添加到 web.config),因此我可以不要将“复制本地”设置为“真”。我认为如果它是一个实际的 Web 项目,而不仅仅是 VS 中的一个简单的网站,这将起作用。【参考方案2】:

只需添加 System.Web.Extensions 作为对您项目的引用。您不必通过 web.config 手动执行此操作。将 Copy Local 设置为 true 以确保它包含在您的发行版中。

【讨论】:

【参考方案3】:

您可以在您的网站项目中右键单击项目名称/位置并选择添加引用...。从那里将显示一个对话框。选择 .NET 选项卡并选择 System.Web.Extensions。这应该将其添加到项目中。您可以对需要添加的任何命名空间执行此操作。

【讨论】:

【参考方案4】:

我的问题类似,因为我正在做一个 WPF 应用程序。添加 Extensions 引用不足以让 Intelisense 检测到我需要使用什么来实例化 javascriptSerializer。后来我发现我需要使用 System.Web.Script.Serialization 添加;然后它终于奏效了:)

【讨论】:

以上是关于错误“名称空间'System.Web'中不存在类型或名称空间名称'Script'”背后是不是有解释的主要内容,如果未能解决你的问题,请参考以下文章

Pig 安装错误:错误 pig.Main:错误 2998:未处理的内部错误

Informix 错误:发生了语法错误。错误代码:-201

我收到一个错误:“MetaMask - RPC 错误:错误:错误:[ethjs-rpc] rpc 错误与有效负载”

错误精灵错误跟踪器错误

网页打开显示错误500是啥意思

PHP错误处理