Как включить автоматическое перестроение в ASP.NET Core 2.2 при обновлении страницы в браузере?

Эта функция по умолчанию работала в ASP.NET Core 2.1, но не в последней версии 2.2.

Я только что создал два основных проекта API ASP.NET Core в Visual Studio 2017 (Community Edition), один с шаблоном 2.1, а другой с шаблоном 2.2. Затем я запускаю оба проекта с помощью Ctrl + F5 (например, без отладки). Когда я перехожу к URL-адресу / api / values ​​ для каждого из них, я получаю JSON по умолчанию. Все идет нормально.

Теперь, когда я меняю ValuesController.cs в проекте 2.1 и нажимаю «Обновить» в браузере, я вижу, что загрузка занимает некоторое время, потому что веб-сервер обнаружил изменения и перестраивает проект, а затем я получаю новый JSON. ценности. Однако, когда я повторяю тот же процесс для 2.2 и нажимаю «Обновить» в браузере, я сразу получаю старые значения (например, создание проекта не производилось).

Итак, как мне включить эту функцию в 2.2?


person mlst    schedule 21.12.2018    source источник
comment
Из консоли: dotnet watch run - То же, что и в 2.1. В 2.1 не было ничего, что делало бы это автоматически. И вы, конечно же, не хотите перестраивать проект, когда вы нажимаете кнопку «Обновить» в браузере! Вы хотите перестроить только тогда, когда действительно вносите изменения в исходный код.   -  person poke    schedule 21.12.2018


Ответы (1)


Решение, которое я нашел, - это удалить или закомментировать узел <AspNetCoreHostingModel> XML в файле .csproj проекта. Вот так это выглядит:

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
  <!--<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>-->
</PropertyGroup>

Теперь, если вы запустите приложение ASP.NET Core с помощью Ctrl + F5 (без отладчика), оно обнаружит изменения в файлах .cs и перекомпилирует во время выполнения, когда вы сделаете запрос, который зависит от нового кода.

person mlst    schedule 01.03.2019
comment
Я зарегистрировал ошибку на этом github.com/aspnet/AspNetCore/issues/9371 - person Suchiman; 15.04.2019
comment
Отличный улов! В итоге я перешел в раздел «Отладка» - ›[свойства проекта] -› «Отладка» и изменение модели хостинга с «По умолчанию» на «Вне процесса», и это также устранило проблему. - person HazardousGlitch; 14.06.2019