我在 Visual Studio Express 2010 中创建了一个“ASP.NET 空网站”。
在 App_Code 的代码文件中,我有一行“使用 System.Web.Script.Serialization;”
当我将文件推送到服务器时,出现以下错误:
异常消息:c:\inetpub[....]\Extensions.cs(10):错误 CS0234:命名空间“System.Web”中不存在类型或命名空间名称“脚本”(您是否缺少程序集引用?)
(服务器运行 Windows Server 2008,安装了 IIS 7 和 ASP.NET 4.0。)
由于这是一个网站,而不是一个 Web 项目,因此我无法使用此处推荐的“发布”功能:名称空间“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 之后,我的参考列表才会显示出来。
因此,在这种情况下,将“复制本地”选择为“真”不起作用。