我在运行我的应用程序时遇到了一个MvcWebRazorHostFactory错误,但它根本不是MVC应用程序。我通过Nuget安装了以下网络包:
Microsoft ASP.NET Razor
Microsoft ASP.NET Web API 2.1
Microsoft ASP.NET Web Pages
我的应用程序是angularjs前端使用razor视图(.cshtml)。
An exception of type 'System.InvalidOperationException' occurred in System.Web.WebPages.Razor.dll but was not handled in user code
Additional information: Could not locate Razor Host Factory type: System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35
下面是我的web.config中的razor部分:
<system.web.webPages.razor>
<host factoryType="System.Web.WebPages.Razor.WebRazorHostFactory, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.WebPages.WebPage">
<namespaces>
<add namespace="System.Web.Configuration" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
我通过设置System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc
版本到5.2.0.0,/view/Web.Config中改为:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
为了让任何人在OSX上使用Xamarin Studio v5.5.3开发ASP.NETMVC 5 Web应用程序,删除/view/Web.config没有为我工作,并制造了其他错误。
要修复它,打开/view/Web.config并将5.2.0.0的所有实例更改为5.2.2.0
可以参考这里。