Заводская ошибка Хоста Razor
Я получаю ошибку MvcWebRazorHostFactory, пытаясь запустить мое приложение, но это не приложение MVC вообще. У меня есть следующие веб-пакеты, установленные через nuget:
Microsoft ASP.NET Razor
Microsoft ASP.NET Web API 2.1
Microsoft ASP.NET Web Pages
мое приложение - AngularJS front end с использованием представлений бритвы (.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
и вот раздел бритвы в моей сети.config:
<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>
6 ответов
я решил эту проблему путем установки System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc
версия 5.2.0.0
и это сработало, наконец-то! Почему?--2-->? та же версия, что и NuGet Microsoft ASP.NET проект.
так, в строке /Views/Web.Config
должно быть:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
для пользы любого превращаясь ASP.NET веб-приложения MVC 5 с использованием Xamarin Studio v5.5.3 в OSX, удаление / Views / Web.config не работал для меня и создал другие ошибки.
чтобы исправить это, откройте / Views / Web.config и измените все экземпляры 5.2.0.0 на 5.2.2.0
более подробная информация здесь
поэтому, по-видимому, какой-то пакет, который я получил от nuget, добавляет веб.config в папке Views. В этой паутине.config были настройки для MvcWebRazorHostFactory. Я думаю, что это произошло, когда я добавил для моего проекта с помощью диалогового окна.
решение: удалить веб.config из папки Вид.
Я начал получать эту ошибку в моей бритвой .страницы cshtml в проекте MVC после некоторого управления / обновления пакета NuGet.
Я не хотел удалять с Views
папка, потому что я настроил ее ширину некоторые <add namespace="..." />
элементы. Но я заметил, что версия=... в <host factoryType="..." />
не соответствует моей версии System.Web.Mvc
(проверена версия в Обозревателе объектов).
изменение этого номера версии в соответствии с моим System.Web.Mvc
сборка и перезапуск Visual Studio, Исправлена проблема для меня (как предложил Даниил)
изменена версия MvcWebRazorHostFactory на ту же версию системы.Сеть.Mvc, который решил мою проблему.
несколько ответов указывают в правильном направлении, но я не был уверен, где в интерфейсе Microsoft Visual Studio для Mac я мог бы найти соответствующий номер версии для использования в части версии .
в интересах других пользователей VS для Mac, ответ заключается в том, чтобы просто щелкнуть правой кнопкой мыши на Microsoft.AspNet.Mvc
пакет в списке пакеты в обозревателе решений.
в моем случае, версия пакета был "5.2.6" после обновления пакета, поэтому я установил часть версии до Version=5.2.6.0
. Это решило проблему.