Дано: проект на ASP.NET Core 2 в Visual Studio.
Задача: отключить компиляцию cshtml (Razor View) в dll.
По умолчанию при компиляции (публикации) проекта все файлы представлений (cshtml-страницы Razor View) собираются в одну dll-библиотеку - view.dll (делается по умолчанию с версии Core 2):
Это существенно ускоряет запуск и работу приложения, но пропадает возможность вносить изменения в представления "на лету", а ведь какой это соблазн иметь такую возможность, править что-то сразу в продакшене :)
Так вот, если очень хочется всё-таки иметь в окончательном проекте чистые cshtml-файлы, а не одну dll, то можно отменить компиляцию представлений.
Для этого в файле проекта (файл с расширением .csproj) нужно скорректировать (или добавить, если нет) параметр MvcRazorCompileOnPublish, установив его в значение false:
Пример установки параметра:
В итоге в опубликованной папке проекта появится директория Views со всеми cshtml-файлами, однако в придачу мы еще получим папку refs со всеми связными библиотеками (и размер проекта соответственно возрастет):
В таком проекте можно редактировать cshtml-файлы представлений на лету в работающем проекте (может понадобиться на этапе запуска проекта для оперативного исправления ошибок на странице).
Соответственно, чтобы вернуть всё обратно, просто устанавливаем этот параметр в true или можно его вообще удалить.
(с) Ella S.
Задача: отключить компиляцию cshtml (Razor View) в dll.
По умолчанию при компиляции (публикации) проекта все файлы представлений (cshtml-страницы Razor View) собираются в одну dll-библиотеку - view.dll (делается по умолчанию с версии Core 2):
Это существенно ускоряет запуск и работу приложения, но пропадает возможность вносить изменения в представления "на лету", а ведь какой это соблазн иметь такую возможность, править что-то сразу в продакшене :)
Так вот, если очень хочется всё-таки иметь в окончательном проекте чистые cshtml-файлы, а не одну dll, то можно отменить компиляцию представлений.
Для этого в файле проекта (файл с расширением .csproj) нужно скорректировать (или добавить, если нет) параметр MvcRazorCompileOnPublish, установив его в значение false:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
Пример установки параметра:
В итоге в опубликованной папке проекта появится директория Views со всеми cshtml-файлами, однако в придачу мы еще получим папку refs со всеми связными библиотеками (и размер проекта соответственно возрастет):
В таком проекте можно редактировать cshtml-файлы представлений на лету в работающем проекте (может понадобиться на этапе запуска проекта для оперативного исправления ошибок на странице).
Соответственно, чтобы вернуть всё обратно, просто устанавливаем этот параметр в true или можно его вообще удалить.
(с) Ella S.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Комментариев нет:
Отправить комментарий