首先,我并没有升级他,头一天还是好好的,用的都是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