- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Visual Studio Express 2010 中创建了一个“ASP.NET 空网站”。
在 App_Code 中的代码文件中,我有一行“using System.Web.Script.Serialization;”
当我将文件推送到服务器时,出现以下错误:
Exception message: c:\inetpub[....]\Extensions.cs(10): error CS0234: The type or namespace name 'Script' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)
(服务器正在运行 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>
那么,我的问题:是否有更好的方法来解决这个问题?
由于我的本地项目不需要这些,我如何才能首先确定我需要手动引用哪些程序集,其次,我如何才能获得进行引用所需的信息(即,我如何获得公钥 token )?
更新
因为这是一个网站而不是 Web 项目,所以我的引用列表不会显示,直到我手动将它们添加到 Web.Config。
因此,在这种情况下,将“Copy Local”选择为“true”是行不通的。
最佳答案
看起来您的提供商在 GAC 中没有 dll System.Web.Extensions
。
命名空间 System.Web.Scripts
是 System.Web.Extensions.dll
的一部分。
如果你这样做,你的问题就可以解决。
System.Web.Extensions
Copy Local
设置为true
这确保您也部署了这个 dll。
关于c# - 错误 "The type or namespace name ' Script' does not exist in the namespace 'System.Web' 背后是否有解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10341526/
我是一名优秀的程序员,十分优秀!