我刚刚将ASP MVC 3应用程序从预览升级到测试版。 在预览中,一切都运行良好,但一旦升级,奇怪的事情就开始发生了。
我收到此错误消息:
编译器错误消息:CS0234: 类型或命名空间名称'Helpers' 在命名空间中不存在 'System.Web'(你错过了吗? 装配参考?)
源文件:c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 1512250b \ 962d050c \ App_Web_index.cshtml.a8d08dba.kncxiw31.0.cs Line:19
我试图完全重建应用程序,并清除临时的asp.net文件,但没有任何作用。我的解决方案构建成功,构建时没有错误。但是当我尝试打开网站时,我收到了这个错误。
这些是我引用的dll:
版本信息:Microsoft .NET 框架版本:4.0.30319; ASP.NET 版本:4.0.30319.1
错误消息的屏幕截图:
有什么想法吗?
答案 0 :(得分:14)
经过深入搜索,我在ASP.NET MVC 3 release notes找到了一些答案。有一个名为将ASP.NET MVC 2项目升级到ASP.NET MVC 3 的部分,它告诉您该怎么做:
将以下两行添加到<assemblies>
中的web.config
部分:
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" />
答案 1 :(得分:10)
问题是您需要在System.Web.Helpers引用上将Copy Local属性设置为true。
答案 2 :(得分:2)
确保System.Web.Mvc程序集指向正确的版本:
C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll
并且System.Web.Helpers也是:
C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.Helpers.dll
在Beta 3中,System.Web.Helpers
是单独下载的,因此请确保您已安装AspNetWebPages.msi
。