我有一个已更新的项目
- .NET 3.5 MVC v2 到
- .NET 4.0 MVC v3
当我尝试使用或设置时编译出现错误@ViewBag.Title
财产。
找不到编译动态表达式所需的一种或多种类型。
您是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用?
我做了以下事情
- 遵循了升级步骤 http://www.asp.net/learn/whitepapers/mvc3-release-notes#upgrading
- 在“项目/属性/应用程序”选项卡中将目标框架设置为.NET框架4
- 添加了系统核心框架manually http://connect.microsoft.com/VisualStudio/feedback/details/525663/cannot-remove-system-core-dll-reference-from-a-vs2010-project
- 添加了微软CSharp框架
- 添加了系统.Xml框架
- 添加了系统.Xml.Linq框架
- 确定我的网页配置是正确的(它被 Web.Debug.Config 等覆盖)
- 创建了model, 控制器和一把剃须刀View
- 创建一个 __Layout.cshtml_
我不知道还能做什么?
EDIT:
我注意到 GAC Gui 中有 System.Core 3.5.0.0,但没有 System.Core 4.0.0.0。这是否意味着它变得混乱并且仍在使用以前的版本?还是我误解了 GAC?
EDIT:
我的 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>
....