2012-01-13 40 views

回答

42

主要的变化是升级到最新版本(4.0 /2.0)的相关引用。您需要更新您的Web配置文件来升级以下命名空间的版本

  • System.Web.Mvc(更改为4.0.0.0)
  • System.Web.Webpages(更改为2.0.0.0)
  • System.Web.Helpers(更改为2.0.0.0)
  • System.Web.WebPages.Razor(更改为2.0.0.0)

你也需要更新根级Web配置文件有这些appsettings条目

<appSettings> 
    <add key="webpages:Version" value="2.0.0.0" /> 
    <add key="PreserveLoginUrl" value="true" /> 
</appSettings> 

然后,你需要更新项目中引用的DLL文件。删除现有的MVC3 dll参考并添​​加MVC4(使用nuget包管理器来做到这一点)

这个link处理转换的所有方面。根据需要参考。

+1

这并没有为我工作。 – 2012-01-23 21:47:59

+1

我需要做一个额外的步骤:我删除了我的项目System.Web.Mvc,System.Web.WebPages,System.Web.Helpers参考,并增加了新版本的引用。 – Rn222 2012-08-21 19:47:02

4

你最好的赌注它安装在平台安装程序的MVC4。 然后按照官方的asp.net/mvc/mvc4页面上的步骤进行操作。如果你遵循(只)Shyju说明这是行不通的。

当你用官方说明结束,看在你的浏览目录,你会发现另一个参考MVC组件和其他几个人的剃刀另一个web.config文件。 您还想要更改此行的版本。基本上每次更换您3.0.0.0找到4.0.0.0 1.0.0.0和2.0.0.0为

如果你不把这个最后的修改,可能会结束与在以下QUESTION

查找错误包括DLL的,并确保他们是正确的版本。

16

按照张贴在这里的官方步骤:

http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806

注:这些步骤包括官方发布的 - 而不是开发者预览版。

+1

此链接已经在[Shyju的回答](http://stackoverflow.com/a/8853408/2188245)中提供,并附有说明。 – 2014-08-13 21:43:55

+1

是的,但他遗漏了一些步骤,这不是一个应该在StackOverflow.com上重现的程序。开发人员应该直接转到源代码而不会传递Go。 – Seth 2014-08-13 22:20:28

5

更重要的是,使用自动更新工具:

https://www.nuget.org/packages/UpgradeMvc3ToMvc4

+1

我发现这是一种快速,简单和简单的方法,但它也添加到了我不需要的OAuth包中。 – 2014-01-30 14:00:52

+0

这对我来说没有任何真正的原因(没有写下错误,对不起)。必须去手动路线。 – willem 2014-06-05 09:16:02

+0

这是一个过于侵入性的工具......造成了太多的假设,包括在一大堆openAuth中干扰。对于Intranet Windows验证应用程序,它只是打破了一切。谨慎使用。 – 2015-02-17 09:38:04