无法更新NuGet包" Microsoft ASP.NET MVC"从版本4.0.20710.0到5.1.2

时间:2014-04-24 18:37:16

标签: asp.net .net asp.net-mvc-4 razor nuget

我在NuGet中有以下过时的包:

enter image description here

但是,当我点击“更新”按钮时,出现以下错误:

错误:将“Microsoft.AspNet.Mvc 4.0.20710.0”更新为“Microsoft.AspNet.Mvc 5.1.2”失败。

  

无法找到与之兼容的'AspNetMvc'版本   'Microsoft.AspNet.Mvc 5.1.2'。

在使用此软件包的两个项目中都会发生这种情况:

enter image description here

我在两个项目上运行.NET 4.5框架。有什么我可以做的升级这个包,或者它只是与4.5不兼容,或者我现在应该使用不同的NuGet包吗?

3 个答案:

答案 0 :(得分:11)

首先将项目框架更改为4.5.1

打开nuget包管理器控制台和

  1. unInstall-Package AspNetMvc
  2. unInstall-Package Microsoft.AspNet.Mvc
  3. 安装包Microsoft.AspNet.Mvc
  4. 这适合我。

答案 1 :(得分:3)

MVC 5.1构建于.NET 4.5.1之上。这是你的第一个问题。您需要在项目上下文菜单>下将目标框架更改为“.NET Framework 4.5.1”。属性。

如果这不起作用,您可能需要卸载MVC包并重新安装。

我的经验是,从主要版本升级可能会很痛苦,而您对细节的关注 - 尤其是在对web.config进行更改时 - 是至关重要的。您可以在此处查看从4到5的指南,并根据5.1:http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

进行相应调整

根据项目的复杂程度,使用4.5.1 Visual Studio MVC模板将现有代码文件转移到新创建的项目中会更容易。

答案 2 :(得分:2)

据我所知,升级到4.5.1并没有真正解决问题。事实上,我能够在将目标框架保留为4.5的情况下修复它。

这是我执行的黑魔法似乎可以修复它。首先,卸载3个旧的MVC库(如建议in this comment),重新安装新的,重建。至少对于这部分我可以在NuGet管理包UI中进行,其中更新在同一位置失败。此时NuGet很高兴,您可以编译,但您的应用程序实际上无法正常工作。

接下来,请务必遵循Upgrade ASP.NET 4 document referenced in the other comment中的绝对每个步骤。当我偶然遗漏一步时,我会得到奇怪的,非直观的错误(回想起来很明显)。例如,您必须更新两个单独的Web.config文件,root和Views目录中的一个。您必须在该版本中找到旧版本号并手动更改,其中有时会自动为您修复根Web.config。否则,我会看到类似于System.Web.WebPages.Razor.WebPageRazorHost"类型的违反继承安全规则的可怕错误。等等。我应该将每个错误消息都复制下来以供后人使用,但重点是,对于每个错误,我都会返回到升级指南,检查步骤,意识到我错过了一个,修复然后再出现新的错误,直到他们都走了。

有好消息。至少在我的情况下,尽管所有可怕的警告你必须找到不兼容性,应用程序的其余部分仍然像以前一样工作而没有任何改变。