【发布时间】:2011-08-18 22:47:21
【问题描述】:
我有一个项目,我已经更新了
- .NET 3.5 MVC v2 到
- .NET 4.0 MVC v3
编译当我尝试使用或设置@ViewBag.Title 属性时出现错误。
找不到编译动态表达式所需的一种或多种类型。 您是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用?
我做了以下事情
- 关注upgrade steps
- 将 Project/Properties/Application 选项卡中的目标框架设置为 .NET Framwework 4
- 添加了 System.Core 框架manually
- 添加了 Microsoft.CSharp 框架
- 添加了 System.Xml 框架
- 添加了 System.Xml.Linq 框架
- 确保我的 Web.Config 正确(它被 Web.Debug.Config 等覆盖)
- 创建了 model、controller 和 Razor View
- 创建一个__Layout.cshtml_
我不知道还能做什么?
编辑:
我注意到 GAC Gui 中有 System.Core 3.5.0.0 但没有 System.Core 4.0.0.0。这是否意味着它变得混乱并且仍在使用以前的版本?还是我误解了 GAC?
编辑:
我的 web.config 如下所示
...
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</assemblies>
</compilation>
....
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.WebPages"/>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Linq" />
<add namespace="System.Collections.Generic" />
</namespaces>
</pages>
....
【问题讨论】:
-
我不知道该怎么做。我以为你只能在调试/运行单元测试时查看堆栈跟踪?
-
啊,对不起,我看错了你的问题。我没有意识到您在编译 时遇到了错误。忽略我之前的评论。
-
System.Core 和 Microsoft.CSharp 都是 v4.0.30319?
-
您是否尝试过关闭整个项目然后再次打开它并重建解决方案...
-
您是否能够创建一个新的 MVC3 项目并正确构建和运行它?
标签: c# asp.net-mvc c#-4.0