Мне было интересно, можно ли компилировать виды Razor, например, на основе WebForm?
Имеет ли смысл компилировать взгляды Razor и почему кто-то хочет это сделать?
Мне было интересно, можно ли компилировать виды Razor, например, на основе WebForm?
Имеет ли смысл компилировать взгляды Razor и почему кто-то хочет это сделать?
Да, вы можете. Взгляните на следующую публикацию: Скомпилируйте ваш asp.net mvc Razor в отдельную dll
Это "пошаговое" руководство о том, как скомпилировать виды бритвы в отдельную dll. Я не знаю, что вы делаете, но это определенно поможет вам в правильном направлении.
Edit:
Вот сообщение в блоге по этой теме:
Как обнаружить ошибки наших представлений MVC ASP.NET во время компиляции
Чтобы сделать ваши представления компилируемыми, выполните следующие действия:
см. следующий код:
<!--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
после этого сохраните его и перезагрузите проект.
после того, как вы построите свое решение для его компиляции, вы увидите, что ваше представление также будет скомпилировано.
ПРИМЕЧАНИЕ:, чтобы проверить его, прервать некоторый код в одном из ваших представлений и попытаться построить. вы увидите сообщение об ошибке.
Проверка MvcBuildViews превосходна, но она добавляет штраф за 5-10 секунд для создания вашего веб-приложения, если он достаточно сложный. Он не кэширует вывод компиляции, поэтому он выполняет полную компиляцию всех ваших просмотров каждый раз.
Я нашел хороший компромисс, следуя советам выше и добавив атрибут Condition:
<MvcBuildViews Condition=" '$(Configuration)' == 'Release' ">true</MvcBuildViews>
Мы ожидаем, что ReSharper все равно будет отмечать любые ошибки в представлениях, и разработчик всегда может создать конфигурацию релиза в качестве теста - у нас есть "предполетный" script, который разработчики запускают, чтобы они могли легко убедиться, что задачи пакета и т.д. - и если все это не удастся, сервер сборки поймает его.
Возможно, этот трюк очевиден, но я только начал изучать msbuild правильно, а не писать сценарии Powershell для этих задач. Надеюсь, это кому-то поможет.
Да, это возможно. На самом деле, лучший пример, который я могу представить, - это шаблоны для электронной рассылки. Если вы скомпилируете и кешируете шаблон, вы можете быстро разрывать электронные письма, не переходя снова в парсинг.
Это хороший пример использования Razor вне MVC.