MVC3 RTM期货 - 安装Microsoft.Web.Mvc

时间:2011-01-16 00:28:58

标签: asp.net-mvc asp.net-mvc-3

我正在尝试为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 Application'来运行它以确保它有效(确实如此)。然后我添加了对我从Mvc 3源代码构建的程序集的引用,并更改了“Views”文件夹下的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)一旦删除了namespace元素和dll,项目就会再次运行。

4 个答案:

答案 0 :(得分:10)

您可以下载source code of MVCContrib并在bin/AspNetMvc文件夹中找到针对ASP.NET MVC 3.0编译的Microsoft.Web.Mvc程序集。

答案 1 :(得分:1)

答案 2 :(得分:0)

在构建MvcFutures项目时,您必须将System.Web.Mvc和System.Web.WebPages的引用替换为GAC中的引用,否则您将必须根据下载的Mvc源代码构建目标项目

这两个选项都适合你。

答案 3 :(得分:-1)

你需要在web.config和命名空间中包含程序集 - 如果你从一个mvc2项目开始,你可能在那里有一行             

当然需要更改为3.0,您可能还需要更新绑定重定向。

当你说没有包含dll时,你检查过gac吗?如果它在那里你不需要本地文件让系统根据强名称找到它。

如果您是从源代码构建的,因此您的版本具有不同的强名称,那么您可能会遇到引用官方版本的第三方组件的问题,但只要Web配置中的名称匹配,您就可以使用东西。您需要添加自己的密钥,以便令牌不为空。