Я зарегистрировал PrecompilecMvcEngine в запуске приложения, чтобы предварительно скомпилировать мои бритвенные представления. Пакет сборки правильно исключает все .cshtml-файлы в каталоге ~ / Views /, но , если представление присутствует в каталоге, он продолжает использовать файл .cshtml, независимо от того, компилируется он или нет.
Например, представление ~ / Shared / Layout.cshtml всегда используется, если оно присутствует в каталоге развертывания.
Как я могу убедиться, что физические виды никогда не используются?
У меня есть следующий код:
[assembly: WebActivatorEx.PostApplicationStartMethod(typeof(SomeBaseNamespace.Views.RazorGeneratorMvcStart), "Start")]
namespace SomeBaseNamespace.Views
{
public static class RazorGeneratorMvcStart
{
public static void Start()
{
var engine = new PrecompiledMvcEngine(typeof(RazorGeneratorMvcStart).Assembly)
{
UsePhysicalViewsIfNewer = false // I would expect this to prevent the engine from using physical views.
};
ViewEngines.Engines.Insert(0, engine);
}
}
}