Подтвердить что ты не робот

.NET Core 3.0 - Preview 2 - Razor view не перекомпилируется автоматически при изменении

Согласно https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0 по умолчанию бритвенные представления должны перекомпилироваться при изменении в локальных средах для ядра asp.net 3.0.

Тем не менее, мой проект не делает это локально. Если я меняю представление и обновляюсь при локальной отладке, это изменение не отражается. Я должен остановить решение, повторно запустить, а затем увидеть изменения.

Я делаю это на стандартном шаблоне ASP.NET Core Web Application в Visual Studio 2019 с asp.net core 3.0.0 preview 2, используя бритвенные страницы. Любая идея, если мне нужно изменить настройки, чтобы включить эту функцию?

4b9b3361

Ответ 1

ОК, похоже, он еще не поддерживается :(

Компиляция во время выполнения удалена Как следствие очистки Общая платформа ASP.NET Core не зависит от Roslyn, поддержка во время выполнения компиляция страниц и представлений также была удалена в этом предварительный выпуск. Вместо этого выполняется компиляция страниц и просмотров во время сборки. В будущем предварительном обновлении мы предоставим NuGet пакеты для необязательного включения поддержки компиляции во время выполнения в приложение.

Вы можете прочитать больше о проблеме здесь https://github.com/aspnet/Announcements/issues/343

Приложения, требующие компиляции или повторной компиляции файлов Razor во время выполнения, должны:

  • Добавьте ссылку на пакет Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation. Он будет доступен как часть выпуска 3.0.0-preview3.
  • Обновите приложение ConfigureServices, чтобы включить вызов AddMvcRazorRuntimeCompilation:

Ответ 2

Вернуть компиляцию представления во время выполнения в ASP.NET Core 3

  1. Ссылка Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
  2. Вызовите services.AddMvc().AddRazorRuntimeCompilation()
  3. Удалите Microsoft.VisualStudio.Web.CodeGeneration.Design если существует несовпадение версий в пакете Microsoft.CodeAnalysis.Common

Ответ 4

Компиляция во время выполнения включается с помощью пакета Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation. Чтобы включить компиляцию во время выполнения, приложения должны:

  1. Установите Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet пакет.

  2. Обновите метод проекта Startup.ConfigureServices, чтобы включить позвоните в AddRazorRuntimeCompilation:

services
    .AddControllersWithViews()
    .AddRazorRuntimeCompilation();

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0