繁体   English   中英

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

[英]Errors when trying to upgrade an existing MVC3 project to MVC4

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

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

在此链接中也尝试过该解决方案: 将ASP.NET MVC 3项目转换为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.但是,这样做之后,当我启动Web应用程序时,它显示了一个新错误,如下所示:

'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.同样,当我运行Web应用程序时,这次它弹出一个新错误。 这次错误如下:

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.

尝试解决以下链接:

错误:未找到具有不变名称'System.Data.SqlClient'的ADO.NET提供程序的实体框架提供程序

未找到具有不变名称'System.Data.SqlServerCe.4.0'的ADO.NET提供程序的实体框架提供程序

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查找到System.Web.WebPages 1.0.0.0而不是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?

在尝试了所有内容之后,我没有使用任何工具,然后使用了将mvc3项目升级到mvc4的自动更新工具。 它确实附带了很多您可能不需要的参考,但是嘿,它工作得很好,并且我能够运行我的应用程序。 如果您担心未使用的引用/库,则可以进行反向工程并逐一删除它们。 该工具的链接如下:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM