首先,我並沒有升級他,頭一天還是好好的,用的都是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