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

Можно ли компилировать виды Razor?

Мне было интересно, можно ли компилировать виды Razor, например, на основе WebForm?

Имеет ли смысл компилировать взгляды Razor и почему кто-то хочет это сделать?

4b9b3361

Ответ 1

Да, вы можете. Взгляните на следующую публикацию: Скомпилируйте ваш asp.net mvc Razor в отдельную dll

Это "пошаговое" руководство о том, как скомпилировать виды бритвы в отдельную dll. Я не знаю, что вы делаете, но это определенно поможет вам в правильном направлении.

Ответ 2

Edit:

Вот сообщение в блоге по этой теме:

Как обнаружить ошибки наших представлений MVC ASP.NET во время компиляции

Чтобы сделать ваши представления компилируемыми, выполните следующие действия:

  • Выгрузите проект справа щелчок проекта по решению explorer в VS и нажав выгрузить проект
  • щелкните правой кнопкой мыши проект, был преобразован в недоступный проекта и нажмите "Изменить your_project_name.csproj "(это будет .vbproj, если ваш проект - проект VB)
  • см. следующий код:

    <!--There some lines of code here and I deleted them to get to the point quickly-->
    
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <MvcBuildViews>false</MvcBuildViews>
    

  • измените значение тега MvcBuildViews с false на true

  • после этого сохраните его и перезагрузите проект.

после того, как вы построите свое решение для его компиляции, вы увидите, что ваше представление также будет скомпилировано.

ПРИМЕЧАНИЕ:, чтобы проверить его, прервать некоторый код в одном из ваших представлений и попытаться построить. вы увидите сообщение об ошибке.

Ответ 3

Проверка MvcBuildViews превосходна, но она добавляет штраф за 5-10 секунд для создания вашего веб-приложения, если он достаточно сложный. Он не кэширует вывод компиляции, поэтому он выполняет полную компиляцию всех ваших просмотров каждый раз.

Я нашел хороший компромисс, следуя советам выше и добавив атрибут Condition:

<MvcBuildViews Condition=" '$(Configuration)' == 'Release' ">true</MvcBuildViews>

Мы ожидаем, что ReSharper все равно будет отмечать любые ошибки в представлениях, и разработчик всегда может создать конфигурацию релиза в качестве теста - у нас есть "предполетный" script, который разработчики запускают, чтобы они могли легко убедиться, что задачи пакета и т.д. - и если все это не удастся, сервер сборки поймает его.

Возможно, этот трюк очевиден, но я только начал изучать msbuild правильно, а не писать сценарии Powershell для этих задач. Надеюсь, это кому-то поможет.

Ответ 4

Да, это возможно. На самом деле, лучший пример, который я могу представить, - это шаблоны для электронной рассылки. Если вы скомпилируете и кешируете шаблон, вы можете быстро разрывать электронные письма, не переходя снова в парсинг.

Это хороший пример использования Razor вне MVC.