asp.net MVC2是否包含在.net 4.0框架中?

32

我已经在服务器上安装了 .net 4。
现在我不知道是否必须安装 MVC 2 用于 VS2008,因为我得到了这个错误:

无法加载文件或程序集“System.Web.Mvc,Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或其中一个依赖项。 找不到指定的文件。

2个回答

35

VS 2010自带MVC 2,但它不是.NET Framework的一部分。这意味着,如果你下载.NET Framework 4可再发行版本,它不会包含MVC 2运行时。

但由于MVC是可二进制部署的,所以这没关系。当你将应用程序部署到.NET 3.5 SP1或.NET 4服务器上时,它只需将System.Web.Mvc.dll复制到其/bin文件夹中,一切都将按预期运行。MVC在中等信任级别下也可以正常运行。

要进行服务器范围内安装,您需要从此处下载AspNetMVC2_VS2008.exe,并将.exe重命名为.zip,在其中的mvcruntime子文件夹中,您将找到AspNetMVC2.msi文件。

然后你需要运行:

msiexec /i AspNetMVC2.msi /l*v .\mvc.log MVC_SERVER_INSTALL="YES"

@Levi:谢谢。本地复制并且运行正常。Haacked和他的团队一定正在为.NET 4的最终版本做准备。 - Eduardo Molteni
@Eduardo - 目前没有将MVC框架整合到.NET框架中的计划。当然,这种情况可能会改变,但是未来所有的发布版本都很可能继续采用独立发布的方式。 - Levi
我的意思是一个已编译的 .net 4 MVC 2 设置,准备好放到共享程序集文件夹中。 - Eduardo Molteni
MVC 2是针对.NET 3.5 SP1编译的,而不是.NET 4。因此,MVC 2可以在.NET 4上运行,但无法利用.NET 4特定的功能。第一个针对.NET 4编译的MVC版本是MVC 3。 - Levi

6

默认情况下,编译MVC 2项目时不会包含System.Web.Mvc.dll文件;您需要将“复制本地副本”设置为True以在/bin目录下获取该文件。


谢谢!这对我非常有效。我不需要在本地计算机上复制文件,但在服务器上运行时确实需要。您能解释一下为什么这是必要的吗? - Mark Good

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接