Подтвердить что ты не робот

Ошибка выполнения отсутствует поставщик сборки, зарегистрированный для расширения '.cshtml'

Я получаю следующую ошибку, когда я пытаюсь запустить один из моих видных лесов в mvc 4:

Ошибка сервера в приложении "/".     Для расширения '.cshtml' не зарегистрирован поставщик сборки. Вы можете зарегистрировать его в разделе machine.config или web.config. Убедитесь, что есть Атрибут BuildProviderAppliesToAttribute, который включает значение "Веб" или "Все".

Единственные ответы, которые я нашел, относятся к intellisense, но мой код отлично подходит и прерывается во время выполнения. Это странная ошибка, поскольку я не использую библиотеку классов. Существует только один контроллер, который дает это сообщение во всех своих представлениях, все остальные контроллеры/представления работают нормально.

4b9b3361

Ответ 1

Это решило проблему для меня.

Измените это в Web.config

<compilation debug="true" targetFramework="4.5.1" optimizeCompilations="true" />

к

<compilation debug="true" targetFramework="4.5.1" optimizeCompilations="false" />

ADDED: когда через несколько минут я вернусь к web.config к старому, проблема не повторится. странные вещи)

Ответ 2

Если решение в Предупреждение/ошибки компилятора Razor - ASP.NET MVC 4 не работает, добавив следующий код в ROOT web.config

<compilation debug="true" targetFramework="4.0">
  <!-- New -->
  <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

затем попробуйте перезапустить Visual Studio. Это сработало для меня, поэтому предположим, что возможно ошибка Visual Studio.

Ответ 3

Я получил эту ошибку при развертывании (ранее работающего сайта) после обновления до VS2013 RC2. К счастью, у меня были другие сайты для сравнения папки bin - оказалось, что несколько библиотек раньше развертывались и волшебно останавливались, в том числе библиотеки бритв. Я изменил их свойства Copy Local на True, и все было лучше. Три библиотеки бритв, о которых идет речь, были:

  • System.Web.Razor
  • System.Web.WebPages.Deployment
  • System.Web.WebPages.Razor

Я также потерял библиотеки, на которые ссылаются пространства имен в файле web.config, поэтому не забудьте также скопировать их и локально.

Я подозреваю, что это может быть возможно разрешить на сервере с помощью GAC, но я не знаю много о серверной стороне вещей, так что это в другое время.

Ответ 4

Я установил аналогичную проблему, описанную здесь: https://naa4e.codeplex.com/workitem/1

Решение заключалось в том, что я удалил ссылки и снова добавил пакеты NuGet.

Проблема заключается в том, что проект первоначально ссылался на MVC4, который, как я полагаю, был расположен где-то на локальной машине (т.е. не был пакетом NuGet). Я просто "восстановил" пакет, который не перезаписывал ссылку на проект с 4 до 5.

Ответ 5

Нажмите "Rebuild Solution" для меня достаточно

Ответ 6

Я исправил эту проблему, изменив .Net Framework с моей текущей версии "4.52" на "4.6". Вы можете изменить это, если вы щелкните правой кнопкой мыши на своем проекте → Свойства, затем "Целевая структура"  После изменения текущей Framework я перестраиваю и все работает нормально.

После этого я переключился на свою текущую версию Framework, и теперь она работает. Я действительно не понимаю, почему это происходит, но это помогло мне.

Ответ 7

Я попытался перезапустить IIS, удалить временные файлы Интернета и изменить тег компиляции в файле веб-конфигурации. Никто из них не работает для меня.

Я исправил проблему, удалив и добавив System.Web.MVC в проект.