Обновление Roslyn NuGet делает компиляцию cshtml чрезвычайно медленной

#c# #performance #razor #roslyn

#c# #Производительность #razor #roslyn

Вопрос:

Иметь ASP.NET 4.8 веб-приложение, использующее компилятор Roslyn, для включения более современных функций C # в коде .cshtml-страниц.

Использовал Microsoft.CodeDom.Поставщики.DotNetCompilerPlatform v. 1.0.8 годами без каких-либо проблем. После обновления до последней версии (3.6.0) каждый раз, когда открывается страница .cshtml, это занимает не менее минуты. Другие вызовы HTML, AJAX и т. Д. По-прежнему Выполняются быстро, Поэтому я считаю, что проблема специфична для времени компиляции .cshtml / Razor.

Возврат к версии 1.0.8 восстанавливает (быструю) скорость.

Пытался обновить Microsoft.Net.Compilers с 2.4.0 до 3.7.0 (последней версии) — не повезло. Пробовал обновить Microsoft.AspNet.Razor до версии 3.2.7 (последняя версия) — без разницы.

Проблема проявляется с отладчиком VS или без него и была подтверждена на другом (чужом) компьютере разработчика.

Мы должны использовать 3.6.0 по соображениям безопасности (или вообще не использовать Roslyn) и не можем просто вернуться к 1.0.8. Таким образом, одним из решений было бы удалить эти пакеты NuGet (и «<system.codedom>Razor C # возвращается к тому, что MVC поддерживает по умолчанию (C # 5?)

Есть ли какой-нибудь способ заставить его работать с Microsoft.CodeDom.Поставщики.DotNetCompilerPlatform 3.6.0?

Комментарии:

1. Пожалуйста, отправьте отзыв в Visual Studio, выбрав Справка> Отправить отзыв> Сообщить о проблеме. Это даст вам возможность записать трассировку производительности, которую мы затем сможем использовать для дальнейшего изучения.

2. Можете ли вы ссылаться на это здесь?

3. @JasonMalinowski developercommunity.visualstudio.com/content/problem/1229301 /…