再次遇到坑爹的版本问题,记录一下,备忘

来源:微信公众号CodeL

 

查了很久才找到解决方案,2个多小时,就干这个!再次记录,备忘!

ASP.NET MVC中出现的问题,问题出现的原因有2个:

  1. 我在新建的项目中引用了主程序高版本dll,版本不一致

  2. MVC4->MVC5之间的版本升级过程中出现的一系列问题

1.System.Web.WebPages.Razor.Configuration.HostSection版本问题

[A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 [B]System.Web.WebPages.Razor.Configuration.HostSection。类型 A 源自“System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll”位置处)。类型 B 源自“System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll”位置处)。

 

解决: 配置view中的Web.config <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />

2.System.Web.WebPages.Razor.Configuration.RazorPagesSection版本问题

[A]System.Web.WebPages.Razor.Configuration.RazorPagesSection 无法强制转换为 [B]System.Web.WebPages.Razor.Configuration.RazorPagesSection。类型 A 源自“System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll”位置处)。类型 B 源自“System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”(在上下文“Default”中的“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll”位置处)。

 

解决:配置view中的Web.config <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />


3.System.Web.Mvc.MvcWebRazorHostFactory版本问题

类型为“System.Web.Mvc.MvcWebRazorHostFactory”的表达式不能用于返回类型“System.Web.WebPages.Razor.WebRazorHostFactory”

解决:配置项目下的Web.config<runtime>    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">      <!--<dependentAssembly>        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />      </dependentAssembly>-->      <dependentAssembly>        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />      </dependentAssembly>      <dependentAssembly>        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />      </dependentAssembly>      <dependentAssembly>        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />      </dependentAssembly>    </assemblyBinding>  </runtime>

 

相关资源获取或其他疑问可在公众号留言。如果你有优秀的原创技术类文章也可以投稿分享给大家赚取赏金哟!

微信扫一扫获取更多开发资源:

 

posted @ 2016-01-25 23:27  李伟-CodeL  阅读(909)  评论(0编辑  收藏  举报