Можно ли настроить dotnet watch run для замены измененных DLL-файлов без перезапуска всего процесса?

#c# #.net #asp.net-core #.net-core

#c# #.net #asp.net-core #.net-core

Вопрос:

Я разрабатываю ASP.NET Ядро 3.1 REST API и я использую dotnet watch run . Это позволяет мне выполнять быструю итерацию в разработке: изменить файл .cs -> перестроить проект -> перезапустить процесс приложения -> выполнить запрос HTTP-клиента, чтобы увидеть результат.

Однако это все еще медленный рабочий процесс разработки (например, по сравнению с разработкой веб-api NodeJS, где изменения в файле js на сервере почти сразу становятся доступными для http-клиента). Мне кажется, что основным узким местом в .NET watch является остановка процесса, а затем его повторный запуск.

Возможно ли это в ASP.NET Ядро, чтобы как-то ускорить работу наблюдателя (например. просто создайте необходимые файлы, например, одну dll, и скопируйте ее поверх старой в выходной папке, не перезапуская все приложение)? Это значительно улучшило бы рабочий процесс разработки, особенно когда я хочу добавить интеграционные тесты (например, сторонний http-клиент, который проверяет мой сервер и БД), которые также автоматически запускались бы при изменениях файлов.

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

1. Приложение должно перезапуститься, чтобы получить изменения в ссылочных DLL-файлах.

2. Это было бы действительно плохой идеей, если бы какая-либо dll нуждалась в какой-либо инициализации, и процесс не был полностью перезапущен, он с треском провалился. Лучшее, что можно сделать, это отредактировать и продолжить (что вы уже можете сделать): приостановить процесс, разрешить редактирование безопасных блоков в памяти, применить изменения и продолжить.