Visual Studio Docker — отладка приложений с редактированием и продолжением?

#c# #visual-studio #docker #asp.net-core #docker-compose

#c# #visual-studio #docker #asp.net-ядро #docker-compose

Вопрос:

Я работаю над ASP.NET Основное приложение, использующее Visual Studio, которое размещено с помощью Docker.

Для этого я выполнил обычные шаги по включению поддержки Docker при создании проекта и, поскольку я использую другие контейнеры, добавил поддержку оркестровки с помощью отдельного проекта docker-compose, который я снова выполнил через обычное меню Add -> Container Orchestration Support .

Теперь я могу запускать контейнеры локально, используя кнопку отладки в VS, используя конфигурацию «Docker Compose». Я могу нажимать точки останова и т. Д.

Однако, чтобы на самом деле изменить код и попробовать его, я должен каждый раз перезапускать весь процесс (т. Е. Составлять вверх и вниз) всю систему. Это уже отнимает много времени (более минуты) для внесения изменений в проект, который сам создается за считанные секунды.

Я видел несколько упоминаний о возможности редактирования и продолжения в C # с помощью Docker, но, похоже, я не могу этого сделать. Редактор доступен только для чтения, и я могу вносить изменения, только отключив систему. И даже если бы я мог, для создания проекта снова требуется, чтобы VS вышел из отладки (что снова приведет к сбою системы).

Кто-нибудь может указать мне правильное направление для этого? Я нашел несколько руководств, но им несколько лет, и они, как правило, ссылаются на функции в VS / .NET Core, которые кажутся устаревшими.

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

1. Вы нашли решение?

2. Привет @Guerrilla, извините за поздний ответ. К сожалению, я не нашел решения.

Ответ №1:

Я тоже боролся с этим, будучи новичком в Docker. Однако у меня такое чувство, что проблема больше связана с .NET Core 3 / Visual Studio 2019, чем с Docker.

Мне удалось получить статические файлы и файлы razor для немедленного отражения изменений, обратившись к:

https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/docker/visual-studio-tools-for-docker?view=aspnetcore-3.0

Части, которые я сделал по приведенной выше ссылке, были следующими: Убедился, что рабочая нагрузка кросс-платформенной разработки .NET Core была загружена для моей visual studio 2019. (Открыл установщик visual studio, изменил visual studio 2019 и отметил рабочую нагрузку .NET Core coss-platform и обновил).

Затем я обнаружил, что при запуске веб-сайта docker изменение статического css-файла немедленно отражается. (Примечание: возможно, это работало до установки этого обновления). Но изменений razor все равно не произошло. Чтобы исправить это, мне пришлось добавить следующий пакет Nuget:

Майкрософт.AspNetCore.Mvc.Razor.Компиляция во время выполнения

А затем добавьте AddRazorRuntimeCompilation() в Startup.cs

 services.AddControllersWithViews().AddRazorRuntimeCompilation();
  

Затем при запуске docker изменения на страницах Razor теперь также отражаются немедленно. Однако все еще не удается заставить изменения C # работать.

Но, похоже, есть проблемы с .NET Core 3 и редактированием и продолжением. Возможно, когда они будут разрешены, он также будет работать с Docker Compose. https://github.com/aspnet/AspNetCore/issues/14712