命名空间“System.Web.UI”中不存在类型或命名空间名称“ScriptReference”(是缺少程序集引用吗?)

时间:2021-05-14 07:46:59

Website从framework 3.5升级到framework4.0编译的时候报错:

错误 10 命名空间“System.Web.UI”中不存在类型或命名空间名称“ScriptReference”(是缺少程序集引用吗?) c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\01.web\582f5aca\78ccecad\App_Web_s2pcmnfi.0.cs 521

在网上找的同一现象的解决办法:

1. http://www.cnblogs.com/dudu/archive/2010/06/24/1764549.html

2. http://blog.csdn.net/hebingyu/article/details/7765900

发现都不好用,于是只好自己研究了,Aspx的文件编译过程是先第一步编译成cs文件,第二个再用csc编译成assembly,根据上面的错误查找编译的临时文件,C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\01.web\582f5aca\78ccecad\s2pcmnfi.out, 打开后发现csc使用的还是framework2.0的csc,C:\windows\system32> "C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library /utf8output /R:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\01.web\582f5aca\78ccecad\assembly\dl3\5637b46a\4184c99d_6b04d001\ICSharpCode.SharpZipLib.dll" ......

看来原因就是这个了,试着把web.config里的compilation节点改成<compilation debug="true" targetFramework="4.0">,重新编译下成功了。