Как редактировать и продолжать в ASP.Net MVC 6

В те дни, когда использовались старые версии Visual Studio и ASP.NET, вы могли редактировать код во время его отладки (даже с некоторыми ограничениями).

Как включить редактирование и продолжить использование ASP.Net/VNext (MVC 6) с VS 2015 RC. Эта функция доступна? Сообщение, которое я получаю:

Error "Изменения не допускаются, если проект не был создан при запуске отладки".

Как я могу создать проект при запуске режима отладки?

Ответ 1

"Редактировать и продолжить" не работает для приложений ASP.NET 5 на данный момент в Visual Studio 2015, но его планируется поддерживать в финальной версии 2015 года.

Для получения дополнительной информации о изменениях VS2015 ENC, посмотрите эту запись в блоге: http://blogs.msdn.com/b/visualstudioalm/archive/2015/04/29/net-enc-support-for-lambdas-and-other-improvements-in-visual-studio-2015.aspx

Ответ 2

Я получил Редактирование и продолжаю работать в VS 2015 на моем проекте ASP.Net MVC 4. Дэвид Р. разместил ссылку в своем ответе (здесь снова для полноты)

http://blogs.msdn.com/b/visualstudioalm/archive/2015/04/29/net-enc-support-for-lambdas-and-other-improvements-in-visual-studio-2015.aspx

На странице указано, что VS2015 поддерживает Edit Continue при подключении к процессу, если переменная среды задана во время загрузки среды выполнения. То, как я понимаю, это то, что эта переменная указывает в CLR, чтобы выделить немного дополнительной памяти, которая необходима для редактирования и продолжения работы.

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

set COMPLUS_FORCEENC=1
ExeToDebug.exe

Но я не смог найти способ прямого запуска моего пула приложений с переменной окружения. Я опубликовал обходной путь (как CSUdev) на этой странице, это небольшой хак, который устанавливает переменную среды уровня компьютера, сбрасывает iis, вызывает URL-адрес, который запускает пул приложений, а затем очищает переменную среды уровня машины. http://forums.iis.net/p/1195182/2115550.aspx?p=True&t=635895941266217500

OP в этом потоке сказал, что он работал в предыдущих версиях IIS, установив переменные среды для профиля пользователя, которые пул приложений будет загружать, когда загрузится его профиль пользователя, хотя он не смог получить работая в IIS8 (может быть связана с настройками безопасности WS2012/Win8 в ОС).

TL;DR; здесь, как я получил работу

Написал bat script...

#set Edit n Continue variable (global... :/ )
setx /m COMPLUS_FORCEENC 1

#kill/restart existing app pools
iisreset

#force app pool to start up (and use the Edit & Continue var)
#you can download wget or curl (instead of start) 
#if you don't want this to open up your default browser every time
start "http://localhost/urlForAspNetApp" 

#clear Edit n Continue var
setx /m COMPLUS_FORCEENC ""

Затем VS2015 присоединяется к процессу w3wp.exe. Bam. Изменить и продолжить. Спасибо MS и VS2015 людям!

Ответ 3

У меня есть ASP.NET MVC5 и понял, что, если вы используете IIS Express, "Редактировать и продолжить" работает в значительной степени из коробки.

С "Local IIS" это не сработает, но не попытался установить параметр "COMPLUS_FORCEENC" из matugly post.

Завершилось переключение на IIS Express для отладки из-за этого.