【发布时间】:2011-01-16 00:28:58
【问题描述】:
我正在尝试为 Mvc3 RTM 运行期货。从 webPI 安装 mvc3 后没有包含 .dll。
我已经下载了源代码并尝试自己构建它,但是当我将它放入我的解决方案并将命名空间添加到 Views 文件夹下的 web.config 时,我在每个页面上都会收到以下错误:
S0012: The type 'System.Web.Mvc.Controller' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null'.
我猜这是因为强命名或类似的东西。
我怎样才能开始使用期货?
编辑:
1) 我可能是错的,但是根据记忆,当您下载并安装以前版本的 MVC 时,它会在 Program File/Microsoft ASP.NET/Asp .net MVC2 下为您提供 Microsoft.Web.Mvc .dll。安装 WebPI 后,该位置只有 System.Web.Mvc.dll。
2) 它绝对不在 GAC 中......它不是这个大会的地方(我也检查过以确保)
3) 不工作的项目是目标项目。我创建了一个新的“Asp .net Mvc 3 应用程序”运行它以确保它正常工作(确实如此)。然后我添加了对从 Mvc 3 源代码构建的程序集的引用,并更改了“视图”文件夹下的 web.config。
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Microsoft.Web.Mvc" />
</namespaces>
</pages>
4) 一旦我删除了命名空间元素和 dll,项目就会再次运行。
【问题讨论】:
-
您在 VS 或 VWD 中使用的是 MVC3 项目模板吗?哪个项目出现错误,目标项目还是期货项目?当您说 MVC3 的安装中不包含 dll 时,您是否拥有对您使用的任何版本的 VS 的所有工具支持?您可能需要重新安装。