尝试将现有MVC3项目升级到MVC4时出错

时间:2014-10-07 15:23:48

标签: c# visual-studio-2010 asp.net-mvc-3 asp.net-mvc-4 razor

我是Asp.net和Visual Studio的新手。我正在开发一个Web应用程序。我最初使用MVC3做到了,但我现在需要将其升级到mvc4。我尝试了很多方法。从更新当前项目中的文件,到创建新的mvc4 webapp,然后在其中复制我的模型/控制器/视图。我知道互联网上有各种链接。

事实上,我尝试了asp.net白皮书中提到的过程http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806

也尝试了此链接中的解决方案:Converting a ASP.NET MVC 3 Project to MVC 4

但它一直无济于事。 我一直遇到的错误如下:

1。首先出现以下错误:

[A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection.

我最初从GAC文件夹中删除了剃须刀4_02并尝试过,但是失败了。然后我通过管理packages.config并在web.config中进行更改来解决这个问题后,它确实消失了。

2。但是,在执行此操作后,当我启动网络应用时,它显示了一个新错误,如下所示:

'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 

现在,根据我在线阅读的内容,我使用Nuget卸载了Microsoft.AspNet.Mvc,然后安装了失败的软件包Razor-3.3.0。之后,我安装了Razor-2.1.0软件包,在其中一个在线响应中提到了它。之后我再次安装了Microsoft.AspNet.Mvc。它很成功。

3。再次,当我运行网络应用时,这次它弹出一个新的错误。这次错误如下:

Compilation Error at '/'
Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0

我通过删除其中一个在线回复中提到的未使用的引用来解决这个问题。我还从System.Web.Webpages.Razor更改为System.Web.Razor

4。解决之后,现在它显示错误如下:

No Entity Framework provider found for the ADO.NET provider with invariant name    'System.Data.SqlServerCe.4.0'. Make sure the provider is registered in the 'entityFramework' section of the application config file.

尝试解决以下链接:

Error: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'

No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlServerCe.4.0'

5. 我最初也遇到了错误

error CS1705: Assembly 'System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' uses 'System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

我使用以下链接中给出的解决方案解决了它:

aspnet_compiler finding wrong version of System.Web.WebPages 1.0.0.0 instead of 2.0.0.0

我尝试在web.config中更改提供程序,然后我也尝试在Visual Studio建议时获取SqlServereCe4.0依赖项。它一直没用。

除了所有错误之外,我也会收到警告。

只要我提供提供商,它就会显示提示

的警告
The element 'entityFramework' has invalid child element 'providers'. List of possible elements expected: 'contexts'

我得到的另一个警告:

The 'packages' element is not declared. 

我尝试创建一个packages.xsd文件,然后映射它,但是它向我显示了另外一个针对packages.xsd的警告,提到xmlns不能包含文本。

我已经尝试了好几个小时,但问题似乎没有解决。请帮忙。 我不知道发生了什么事。我怎样才能将它升级到MVC4 ??

1 个答案:

答案 0 :(得分:0)

在尝试了所有内容并且没有在哪里之后,我使用了将mvc3项目升级到mvc4的自动更新工具。它确实附带了很多你可能不需要的参考文献,但是它完美地工作了,我能够运行我的应用程序。 如果您担心未使用的引用/库,也许您可​​以进行逆向工程并逐个删除它们。 该工具的链接如下:

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