ASP.NET编译器在更新到5.2.2之后无法加载System.Web.Mvc

前端之家收集整理的这篇文章主要介绍了ASP.NET编译器在更新到5.2.2之后无法加载System.Web.Mvc前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近更新到MVC 5,使用此网页上的说明:

http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

我现在得到这个错误

Could not load file or assembly ‘System.Web.Mvc,Version=5.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

一个奇怪的行为是有时错误实际上说3.0.0.0版本,有时5.0.0.0版本.

我做了大量的搜索,但找不到有同样错误的人,只是类似的错误,人们讨论更改配置文件中的版本,所以这里是我的配置条目:

视图:







  1. <system.web.webPages.razor>
  2. <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,PublicKeyToken=31BF3856AD364E35" />
  3. <pages pageBaseType="System.Web.Mvc.WebViewPage">
  4. <namespaces>
  5. <add namespace="System.Web.Mvc" />
  6. <add namespace="System.Web.Mvc.Ajax" />
  7. <add namespace="System.Web.Mvc.Html" />
  8. <add namespace="System.Web.Optimization"/>
  9. <add namespace="System.Web.Routing" />
  10. </namespaces>
  11. </pages>
  12. </system.web.webPages.razor>
  13.  
  14. <appSettings>
  15. <add key="webpages:Enabled" value="false" />
  16. </appSettings>
  17.  
  18.  
  19. <system.web>
  20. <httpHandlers>
  21. <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
  22. </httpHandlers>
  23.  
  24. <!--
  25. Enabling request validation in view pages would cause validation to occur
  26. after the input has already been processed by the controller. By default
  27. MVC performs request validation before a controller processes the input.
  28. To change this behavior apply the ValidateInputAttribute to a
  29. controller or action.
  30. -->
  31. <pages
  32. validateRequest="false"
  33. pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter,PublicKeyToken=31BF3856AD364E35"
  34. pageBaseType="System.Web.Mvc.ViewPage,PublicKeyToken=31BF3856AD364E35"
  35. userControlBaseType="System.Web.Mvc.ViewUserControl,PublicKeyToken=31BF3856AD364E35">
  36. <controls>
  37. <add assembly="System.Web.Mvc,PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  38. </controls>
  39. </pages>
  40. <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="en-GB" culture="en-GB" />
  41. </system.web>
  42.  
  43. <system.webServer>
  44. <validation validateIntegratedModeConfiguration="false" />
  45.  
  46. <handlers>
  47. <remove name="BlockViewHandler"/>
  48. <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
  49. </handlers>
  50. </system.webServer>
  51. </configuration>

和我的网站web.config文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. For more information on how to configure your ASP.NET application,please visit
  4. http://go.microsoft.com/fwlink/?LinkId=169433
  5. -->
  6. <configuration>
  7. <configSections>
  8. <!-- For more information on Entity Framework configuration,visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  9. <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection,EntityFramework,PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  10. </configSections>
  11. <connectionStrings>
  12. ...
  13. </connectionStrings>
  14. <appSettings>
  15. <add key="webpages:Version" value="3.0.0.0" />
  16. <add key="webpages:Enabled" value="false" />
  17. <add key="PreserveLoginUrl" value="true" />
  18. <add key="ClientValidationEnabled" value="true" />
  19. <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  20. </appSettings>
  21. <system.web>
  22. <compilation debug="true" targetFramework="4.5" />
  23. <httpRuntime targetFramework="4.5" />
  24. <authentication mode="Forms">
  25. <forms loginUrl="~/Account/Login" timeout="2880" />
  26. </authentication>
  27. <pages>
  28. <namespaces>
  29. <add namespace="System.Web.Helpers" />
  30. <add namespace="System.Web.Mvc" />
  31. <add namespace="System.Web.Mvc.Ajax" />
  32. <add namespace="System.Web.Mvc.Html" />
  33. <add namespace="System.Web.Optimization" />
  34. <add namespace="System.Web.Routing" />
  35. <add namespace="System.Web.WebPages" />
  36. </namespaces>
  37. </pages>
  38. <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="en-GB" culture="en-GB" />
  39. </system.web>
  40. <system.webServer>
  41. <validation validateIntegratedModeConfiguration="false" />
  42. <handlers>
  43. <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  44. <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  45. <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  46. <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
  47. <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,bitness64" responseBufferLimit="0" />
  48. <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  49. </handlers>
  50. </system.webServer>
  51. <runtime>
  52. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  53. <dependentAssembly>
  54. <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
  55. <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  56. </dependentAssembly>
  57. <dependentAssembly>
  58. <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
  59. <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  60. </dependentAssembly>
  61. <dependentAssembly>
  62. <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
  63. <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  64. </dependentAssembly>
  65. </assemblyBinding>
  66. </runtime>
  67. <entityFramework>
  68. <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory,EntityFramework">
  69. <parameters>
  70. <parameter value="v11.0" />
  71. </parameters>
  72. </defaultConnectionFactory>
  73. </entityFramework>
  74. </configuration>

解决方法

你说你已经升级到版本5.2.2.所以你应该改变
  1. <dependentAssembly>
  2. <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
  3. <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  4. </dependentAssembly>

  1. <dependentAssembly>
  2. <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
  3. <bindingRedirect oldVersion="1.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
  4. </dependentAssembly>

显然,您将需要用5.2.2.0替换所有出现的MVC 5.0.0.0.

猜你在找的asp.Net相关文章