MVC4升级到MVC5未能加载文件或程序集System.Web.WebPages.Razor, Version=3.0.0.0

时间:2023-03-08 16:27:47
MVC4升级到MVC5未能加载文件或程序集System.Web.WebPages.Razor, Version=3.0.0.0

首先,我并没有升级他,头一天还是好好的,用的都是2.0.0.0版本的,今天来打开就出现了这个错误:

未能加载文件或程序集“System.Web.WebPages.Razor, Version=3.0.0.0,.......

然后在网上找了一篇文章:http://www.cnblogs.com/kcjm/p/6430101.html

说是MVC4升级到MVC5的问题,导致相关的dll引用版本没有自动更新。

1.查了一下我引用的dll,仍然是2.0.0.0版本的;

2.查看配置文件的Appsetting中的配置:<add key="webpages:Version" value="2.0.0.0" /> 也是2.0版本;

3.然后我又查了一下项目文件 SystemManage.csproj,用记事本打开,

<Reference Include="Microsoft.Web.Helpers, Version=3.0.0.0......

<Reference Include="System.Web.Razor, Version=3.0.0.0.......

<Reference Include="System.Web.WebPages, Version=3.0.0.0......

<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0......

<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0......

这些引用都变成了3.0.0.0的了,我不知道为什么,有知道的可以写在评论里。

然后我就按照网上的方法开始修改,在 程序包管理器控制台 和  Nuget包管理器 中安装与更新

1:运行 Install-Package -Id Microsoft.AspNet.WebHelpers

2:修改 Web.config中appSettings,全部修改为3.0(这一步可改可不改)

3:运行 Install-Package Microsoft.AspNet.WebPages.Data

然而没什么用,又出现了另一个错误:

安全透明方法“System.Web.Mvc.PreApplicationStartCode.Start()”尝试访问安全关键方法“System.Web.WebPages.Razor.PreApplicationStartCode.Start()”失败。

我继续查,过了好久,还是没解决问题,难道就不能升级成MVC5?我用的.NetFrameWork是4.6.1的,不知道是不是这个问题。

由于项目要赶着继续做,只能先撤回成2.0.0.0的,

方法:项目文件 SystemManage.csproj,用记事本打开,把里面那几个3.0.0.0的引用都改成2.0.0.0的,然后再打开项目就好了,不知道还会不会自动变成3.0.0.0。

猜测:由于项目文件中的版本号升级了,对应的dll并没有升级,需要将所有对应的dll都升级才行:

Microsoft.AspNet.WebHelpers

Microsoft.AspNet.WebPages

Microsoft.AspNet.WebPages.Data

Microsoft.AspNet.MVC

Microsoft.AspNet.Razor

Microsoft.AspNet.WebApi

Microsoft.AspNet.WebApi.Core

Microsoft.AspNet.WebApi.WebHost