2015-05-17 3 views
5

Мы используем код Visual Studio и DNX следующим образом.Просмотр изменений кода без перезапуска сервера

командной строки для запуска Web-сервера

dnx . web 

project.json> Команды

, которые мы добавили возврата каретки для читаемости
"web": "Microsoft.AspNet.Hosting 
     --server Microsoft.AspNet.Server.WebListener 
     --server.urls http://localhost:5001" 

Примечание.

Когда мы меняем *.cshtml и обновляем браузер, изменения отображаются в браузере. Это хорошо.

Когда мы меняем *.cs и обновляем браузер, изменения не отображаются в браузере. Мы ожидали, что они это сделают. Чтобы увидеть изменения, нам нужно остановить веб-сервер (с Ctrl + C в командной строке), а затем заново запустить его с dnx . web.

Это еще не конец света; что я сказал, что одна из особенностей ASP.NET 5 - возможность обновления без перекомпиляции и т. д.

Как мы можем изменить код *.cs и обновить браузер, чтобы просмотреть изменения без перезапуска веб-сервера DNX?

Мы попытались запустить dnx --watch . web с проблемой, что если мы изменим файл *.cs, тогда веб-сервер остановится, и мы все равно должны его перезагрузить.

ответ

1

Это ожидаемое поведение. Вы можете использовать что-то вроде gulp-aspnet-k для автоматизации этого процесса. Более подробная информация доступна здесь: Building and Running Your ASP.NET vNext Application with Gulp.

Обратите внимание, что эта интеграция с глотком, к сожалению, only works on Windows now, но все, что она делает, это watch the dnx process and restart it again.

+0

пакет NPM был переименован в 'Глоток-САШ-dnx' (как и следовало ожидать). Но это не нужно. На окнах просто запустите эту powershell: 'for (;;) {Write-Output« Starting ... »; dnx --watch.web} ' – yzorg

5

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

Короче говоря: для обновления кода позади сервер должен перезагрузиться. При запуске из командной строки сервер останавливается и никогда не перезагружается - вы должны справиться с этим сами, как и предлагал @tugberk, но при запуске из VS инструментарий позаботится об этом для вас.

+0

для этого есть dnx-watch. не так ли? – Neel

+0

Да, мы только что опубликовали его вчера –

1

Для этого используется команда dnx-watch. Он не существовал, когда задавался первоначальный вопрос, но был добавлен в бета-версию 8 в сентябре 2015 года. Вы устанавливаете его с помощью

dnu commands install Microsoft.Dnx.Watcher Вы запускаете его, просто передавая ему команду, которую вы перейдут на dnx. Таким образом, заменить

dnx web 

с

dnx-watch web 

Вы можете узнать больше здесь: http://ardalis.com/get-started-with-dnx-watch

+0

Есть ли способ горячей перезагрузки (например, webpack). Здесь перезапускается веб-процесс (при использовании веб-сайта dnx-watch), но вам все равно нужно нажать F5, чтобы увидеть изменения. –

+0

Не то, чтобы я знать о; FYI переключается на использование dotnet-watch, здесь: https://github.com/aspnet/dotnet-watch – ssmith

+0

Thx, я нашел этот проект [NodeServices-Webpack] (https://github.com/aspnet/NodeServices/tree /master/src/Microsoft.AspNet.SpaServices/Webpack). Я пробовал, но так как в альфае я не мог заставить его работать, так что подождем немного, пока он не станет более стабильным –

Смежные вопросы