Перекомпиляция базового приложения ASP. NET в Rider без повторного запуска - PullRequest
0 голосов
/ 07 января 2020

Я работаю над приложением ASP. NET Core MVC в Rider, в котором я часто редактирую код, и в результате мне приходится многократно вручную останавливать и запускать приложение, что крайне неудобно. .

Чтобы решить эту проблему, я попробовал различные подходы:

  1. Перестройка приложения во время работы не работает. Во-первых, я получаю предупреждение: warning Если я щелкаю по кнопке build, решение перестраивается, но любые изменения кода не отражаются на работающем веб-сервере. Например, если я изменил строку "welcome" на "goodbye", перестройка по-прежнему показывает welcome после перестройки.
  2. dotnet watch run. Добавление этой команды в качестве внешнего инструмента для запуска в конфигурации перед запуском действительно дает возможность перекомпиляции на основе сохранения. Однако это не интегрируется со встроенным бегуном. Поскольку dotnet watch run запускает свой собственный веб-сервер, команда запуска Rider фактически никогда не запускается. В результате Rider не обнаруживает, что приложение запущено, но вместо этого думает, что dotnet watch run - это какая-то предварительная задача, которая должна начаться до запуска . С помощью отладки я также не могу достичь каких-либо точек останова по этой причине.

Есть ли другой способ быстро перестроить основной проект ASP. NET при его запуске?

1 Ответ

2 голосов
/ 07 января 2020

Думаю, вам нужна компиляция Razor. Это восстановит ваши представления после их редактирования без перезапуска сервера.

Если вы добавите ссылку на этот пакет:

<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />

и добавите этот фрагмент в свой запуск:

public IWebHostEnvironment Env { get; set; }

public void ConfigureServices(IServiceCollection services)
{
    IMvcBuilder builder = services.AddRazorPages();

#if DEBUG
    if (Env.IsDevelopment())
    {
        builder.AddRazorRuntimeCompilation();
    }
#endif

    // code omitted for brevity
}

, теперь у вас должны быть перестраиваемые представления. Вы можете прочитать больше об этом в документах .

РЕДАКТИРОВАТЬ:

Если вы также хотите обновить все файлы (не только представления) ), есть несколько вариантов:

  1. Вы можете добавить промежуточное ПО Live Reload , используя этот пакет .

  2. Вы можете использовать dotnet-watch и перестроить и запустить проект, когда он будет сохранен. См. Этот ответ о том, как это сделать.

...