PrecompiledMvc​​Engine仍然使用共享物理视图

时间:2018-05-09 14:46:35

标签: c# asp.net-mvc razor razorengine

我已在app start中注册了PrecompilecMvcEngine以预编译我的剃刀视图。构建包正确地排除〜/ Views /目录中的所有.cshtml文件,但如果目录中存在视图,它继续使用.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 :(得分:0)

正如CodeCaster所写,在PreemptPhysicalFiles上设置truePrecompiledMvcEngine解决了这个问题。