Для того, чтобы поддержать C# 6 в наших взглядах на бритвенные MVC5, мы свернули на платформе компилятор Рослин через web.config:Избегайте попадания в VBCSCompiler на ролики ASP.NET Razor MVC от Roslyn?
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
</compilers>
</system.codedom>
Однако после развертывания производства, каждый вид/контроллер, похоже, заметно " Первая загрузка ", которая хуже, чем без включения этого компилятора.
Важно отметить, что эта задержка в дополнение к обычной задержке JIT, которую вы получаете с нового развертываемого сайта. Страницы заметно медленнее, а VBCSCompiler.exe работает в фоновом режиме для «дальнейшей компиляции» этих страниц.
Есть ли наилучшая практика для предварительной компиляции/оптимизации этой ситуации, чтобы исключить развертывание послезадержки при загрузке с первой загрузкой? В идеале VBCSCompiler.exe не запускается после развертывания и выполняется во время сборки.
Я видел упоминания aspnet_compiler.exe и столкнулся с StackExchange.Precompilation (см. https://blog.stackoverflow.com/2015/07/announcing-stackexchange-precompilation/) и задаюсь вопросом, правильно ли это исправление.
Есть ли у кого-нибудь опыт в этой конкретной проблеме? Спасибо.