PrecompiledMvcEngine по-прежнему использует общие физические представления - PullRequest
0 голосов
/ 09 мая 2018

Я зарегистрировал 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);
        }
    }
}

1 Ответ

0 голосов
/ 16 мая 2018

Как писал CodeCaster , установка PreemptPhysicalFiles на true на PrecompiledMvcEngine решила проблему.

...