Невозможно выполнить горячую перезагрузку в Visual Studio 2022

#c# #hot-reload #visual-studio-2022

Вопрос:

Я перенес свое веб-приложение с Visual Studio 2019 на 2022 (предварительный просмотр 7), но я не могу выполнить горячую перезагрузку даже с небольшими изменениями, такими как изменение if(a=b) на if(a!=b) и потребует остановки отладчика, и я не уверен, что такое переменная среды ‘COMPLUS_ForceENC’, ничего не смог найти об этом.

Когда я создаю новое веб-приложение, горячая перезагрузка очень хорошо работает на C # и cshtml.

это ошибка, отображаемая при изменении чего-либо в моем исходном приложении:

Ошибка ENC2004: изменения, внесенные в проект, требуют перезапуска приложения: изменения не допускаются, если отладчик подключен к уже запущенному процессу. Перед запуском процесса рассмотрите возможность установки переменной среды ‘COMPLUS_ForceENC’.

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

1. Но в чем ваш вопрос? Чего вы ожидаете от нас? VS2022 еще не выпущен. Т.е. ожидаются ошибки. Вы сообщили об этом в Microsoft?

2. Да, я это сделал, но я не знаю, сколько времени это займет, я просто хочу знать, как установить переменную среды COMPLUS_ForceENC, в Google ничего не появилось относительно этой переменной!

3. Я только что установил RTM 2022, и я получаю эту проблему в проекте .NET Core 3.1 Web API, когда я выполняю очень простое изменение кода.

4. Горячая перезагрузка также не работает с файлами Cshtml в приложении .NET Core 3.1 MVC.

5. Официальная версия уже вышла, но я сталкиваюсь с той же проблемой. Кто-нибудь уже сообщал об этом? Любая страница, на которую мы могли бы перейти для этого?

Ответ №1:

Я обвинял VS в неработоспособной горячей перезагрузке, но в моем случае это было вызвано попыткой отладки (F5 ) и горячей перезагрузки одновременно. Значок горячей перезагрузки введите описание изображения здесьвообще не работал для приложений blazor.

Решение было довольно простым. Приложение необходимо запустить без отладки (Ctrl F5) введите описание изображения здесь

После этого горячая перезагрузка работает нормально.

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

1. Действительно. На самом деле я создаю Blazor Wasm, размещенный в ASP.NET Ядро и ГОРЯЧАЯ ПЕРЕЗАГРУЗКА вообще не работают даже при использовании CTRL-F5. Microsoft Visual Studio Community 2022 (64-разрядная версия) версия 17.0.5

2. Я делал это с веб-проектом. Почти отказался от этого, поскольку я выполнял отладку control f5 в течение 20 лет.. это решило проблему с тем, что горячая перезагрузка не работала в Visual Studio, потому что я запускал IIS / IIS Express

Ответ №2:

Возможно, это совпадение, но после обновления с 17.0.1 до 17.0.2 он начал работать. Это странно, потому что в журнале обновлений нет упоминания об исправлении такой ошибки. Попробуйте обновить до последней версии.

ОБНОВЛЕНИЕ Кажется, что я получил это только в своем новом проекте .NET 6. В старой версии, перенесенной на .NET 6, это все еще происходит. Возможно, в проектах, которые не полностью перенесены на .NET 6 и все еще используют старый файл startup.cs, он не будет работать корректно. В режиме отладки отображается уведомление об обновлении, но содержимое не изменяется до обновления браузера.Если не в режиме отладки, обновление браузера ничего не делает.

ОБНОВЛЕНИЕ 2 Обнаружило, что в новом .net 6 Asp.net Проект веб-страницы, горячая перезагрузка работает хорошо, если я изменяю файлы .razor, но в файлах .cshtml мне нужно обновить браузер, чтобы увидеть изменения. У меня есть оба типа файлов, потому что я использую razor pages Blazor в одном проекте.

Если вы попытаетесь создать проект .Net 6 Blazor, я почти уверен, что горячая перезагрузка сработает.

ОБНОВЛЕНИЕ 3 Теперь я открыл проблему в Dotnet Github. Вы можете следить за проблемой там. github.com/dotnet/aspnetcore/issues/38809

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

1. Спасибо, на самом деле это именно моя проблема! я не уверен, чего не хватает или как «полностью перенести» в .Net6!

2. пытался обновить и выполнить горячую перезагрузку во время отладки, у меня по-прежнему не работает даже с готовым проектом с использованием шаблона .net6.

3. Моя проблема решена после обновления с 17.0.0 до 17.0.2. Это своего рода ошибки, которые уничтожают ракеты!

4. Теперь я открыл проблему в Dotnet Github. Вы можете следить за проблемой там. github.com/dotnet/aspnetcore/issues/38809

5. Не работает горячая перезагрузка Blazor WASM — тщательно протестировано на VS Code и VS2022 с .net 6.0.100.

Ответ №3:

Версия VisualStudio 2022 GA для меня тоже не работает: (похоже, я не единственный, я заметил, что у меня есть значок для функции горячей перезагрузки, отличный от того, который показан в рекламных видеороликах Microsoft, мой — это пламя, в то время как в рабочей версии, похоже, есть два пламени, которые образуюткруг: (

я нашел это

* В Visual Studio 2022 GA release поддержка горячей перезагрузки для Blazor WebAssembly при использовании отладчика Visual Studio еще не включена. Вы все равно можете получить горячую перезагрузку, если запустите свое приложение через Visual Studio без отладчика, и мы работаем над решением этой проблемы в следующем обновлении Visual Studio.

если я запускаю программу без подключенного отладчика, у меня есть горячая перезагрузка, или я могу запустить приложение с помощью отладчика без горячей перезагрузки, что ожидается в статье, приведенной выше, но событие запуска вводит в заблуждение, поскольку они никогда не упоминают об этом и не показывают, какая кнопка нажата во время демонстраций, чтобы запустить blazor webasmс горячей перезагрузкой работает… В любом случае, они не показывают, что debugger и hot reload работают вместе для blazor webasm, так что, похоже, все это в наших умах: ( … нам нужно подождать

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

1. Это крайне вводит в заблуждение — показывает видеоролики о том, как работает горячая перезагрузка на стороне сервера Blazor, но НЕ говорит, что это не работает на wasm. Я потратил так много времени на это и представил 5 различных объяснений ошибок в версиях предварительного просмотра и версии выпуска. Не более того — просто огромная трата времени.

Ответ №4:

В моем случае я допустил глупую ошибку, пытаясь выполнить горячую перезагрузку приложения, запущенного в конфигурации выпуска. Убедитесь, что это отладка 🙂

введите описание изображения здесь

Ответ №5:

В моем случае это было связано с тем, что я отключил генератор исходного кода Razor <UseRazorSourceGenerator>false</UseRazorSourceGenerator> в .csproj файле. Установка его обратно на true исправленную проблему.

Ответ №6:

Может кому-то помочь. Я удалил ссылку на Microsoft.AspNetCore.Mvc.Razor.Компиляция во время выполнения в моем веб-проекте и код в моем запуске и горячая загрузка работают сейчас…

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

1. «код в моем автозагрузке», какой код? пожалуйста, уточните…

2. @OJB1 то, что, казалось, сработало для меня, — это удалить это // services. AddRazorPages().AddRazorRuntimeCompilation(); Я также удалил ссылку из веб-проекта в VS (она больше не нужна)

Ответ №7:

Это обычная проблема для пользователей предварительного просмотра. Теперь вы можете обновиться до стабильной версии и пользоваться всеми функциями, включая горячую перезагрузку.

Пожалуйста, посетите https://visualstudio.microsoft.com / для загрузки стабильной версии VS 2022

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

1. Согласен. На самом деле это не работает с 17.0.5

2. То же самое. 17.0.5 горячая перезагрузка работает только в серверном приложении Blazor, а не в режиме отладки.

3. Версия 17.1.3 — и я оказался здесь, разочарованный всеми перезапусками, которые мне приходится делать при настройке html

4. Версия 17.3.0 Предварительный просмотр 1 — то же самое! Даже просто редактируя простые вещи в коде C # моего проекта Maui… необходимо полностью перестроить.