MVC3升级到MVC4之困惑
2015-04-29 15:22
302 查看
[A]System.Web.WebPages.Razor.Configuration.RazorPagesSection 无法强制转换为 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”位置处)。
今天运行之前一网站,老出现上述错误,折腾了半天,最后发现是MVC3升级到MVC4的问题,最终找到的解决方案如下:
[b]1、ASP.NET Web Pages版本问题
调试后浏览器提示:
检测到 ASP.NET Web Pages 的冲突版本: 指定的版本为“1.0.0.0”,而 bin 中的版本为“2.0.0.0”。要继续操作,请删除应用程序 bin 目录中的文件,或者删除 web.config 中的版本指定。
解决:
配置项目下的Web.config
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
2、System.Web.WebPages.Razor.Configuration.HostSection版本问题
调试后浏览器提示:
[A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 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" />
[b]3、System.Web.WebPages.Razor.Configuration.RazorPagesSection
版本问题
调试后浏览器提示:
[A]System.Web.WebPages.Razor.Configuration.RazorPagesSection 无法强制转换为 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" />
[b]4、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>
注:蓝色的为原来的配置,加上红色这段就不会报上面的错误了!
以上的版本问题只要把红色部分的配置改为Bin文件中对应DLL的版本数就可以了。
以上的问题是mvc3的配置移植到mvc4时出现的错误,随着VS2013和mvc5的降临,可能会出现更多的问题,以后遇到了再做补充。
转载原文:http://www.cxyclub.cn/n/42551/
今天运行之前一网站,老出现上述错误,折腾了半天,最后发现是MVC3升级到MVC4的问题,最终找到的解决方案如下:
[b]1、ASP.NET Web Pages版本问题
调试后浏览器提示:
检测到 ASP.NET Web Pages 的冲突版本: 指定的版本为“1.0.0.0”,而 bin 中的版本为“2.0.0.0”。要继续操作,请删除应用程序 bin 目录中的文件,或者删除 web.config 中的版本指定。
解决:
配置项目下的Web.config
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
2、System.Web.WebPages.Razor.Configuration.HostSection版本问题
调试后浏览器提示:
[A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 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" />
[b]3、System.Web.WebPages.Razor.Configuration.RazorPagesSection
版本问题
调试后浏览器提示:
[A]System.Web.WebPages.Razor.Configuration.RazorPagesSection 无法强制转换为 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" />
[b]4、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>
注:蓝色的为原来的配置,加上红色这段就不会报上面的错误了!
以上的版本问题只要把红色部分的配置改为Bin文件中对应DLL的版本数就可以了。
以上的问题是mvc3的配置移植到mvc4时出现的错误,随着VS2013和mvc5的降临,可能会出现更多的问题,以后遇到了再做补充。
转载原文:http://www.cxyclub.cn/n/42551/
相关文章推荐
- MVC3升级为MVC4
- MVC3升级到Mvc4
- MVC3升级到MVC4模型验证信息显示为英文问题及解决方案
- mvc3升级mvc4的方法记录
- mvc3升级mvc4的方法记录.
- 记录一次MVC3升级MVC4遇到的问题
- mvc3升级mvc4的方法记录. - 棋怜 - 博客园
- windows2003 IIS6 部署MVC3和MVC4程序
- MVC2、MVC3、MVC4、MVC5之间的区别 以及Entity Framework 6 Code First using MVC 5官方介绍教程
- 嵌入式组态环境升级及XML反序列化慢的困惑
- 安装MVC3和MVC4 webpages 冲突
- windows2003 IIS6 部署MVC3和MVC4程序的方法
- STM32 IAP升级功能编写初期的一些困惑与疑问---完成功能后的总结
- windows2003 IIS6 部署MVC3和MVC4程序
- 由mv2升级到mvc3 vs2010
- 程序员的困惑--把女友升级为老婆的时候发生的BUG
- asp.net mvc1 mvc2 mvc3 mvc4 特
- MVC2,MVC3,MVC4和MVC5的不同
- IAP升级功能编写初期的一些困惑与疑问---完毕功能后的总结
- MVC3和MVC4中CRUD操作