#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 для немедленного отражения изменений, обратившись к:
Части, которые я сделал по приведенной выше ссылке, были следующими: Убедился, что рабочая нагрузка кросс-платформенной разработки .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