Dans ASP.NET vNext, pourquoi le code n’est-il pas recompilé à la volée?

J’utilise l’exemple d’application HelloMvc à partir de la ligne de commande à l’aide de k web. J’ai essayé de l’exécuter en utilisant les différents environnements disponibles avec kvm use -runtime. Lorsque je change de contrôleur et que je tape F5 (ou Ctrl + F5) dans le navigateur, le code n’est pas recompilé automatiquement et la page ne change pas. Qu’est-ce que je fais mal?

Active Version Runtime Architecture ------ ------- ------- ------------ 1.0.0-alpha3 svr50 x86 1.0.0-alpha3 svrc50 x86 1.0.0-alpha4 CLR x86 * 1.0.0-alpha4 CoreCLR x86 

L’exécution de dnx web partir de votre ligne de commande ne démarre que votre hôte. Pour bénéficier de la qualité de la recompilation automatique, il est nécessaire de surveiller les modifications des fichiers et de redémarrer votre hôte si des modifications sont détectées. Pour ce faire, utilisez l’indicateur --watch et exécutez votre commande Web comme --watch :

 dnx --watch web 

Actuellement, cela arrête simplement votre hôte lorsqu’un changement est détecté. Vous avez donc besoin de quelque chose qui le redémarre une fois que cela se produit. IISExpress le fait pour vous si vous exécutez votre projet à partir de Visual Studio 14.

Votre meilleur pari pour ce stream de travail en dehors de Visual Studio consiste à utiliser un outil de génération JavaScript ou des scripts npm. Je vous recommanderais de regarder ce plugin gulp-aspnet-k (notez que ce plugin ne fonctionne que sous Windows actuellement) si vous souhaitez une recompilation continue des modifications de fichiers lorsque vous travaillez en dehors de VS14. Semble être le meilleur moyen d’y parvenir sans IISExpress que j’ai trouvé. Ce plugin est / était spécifique à Windows, mais la lecture du code devrait vous aider à démarrer. 🙂

Glenn F. Henriksen a écrit un emballage pour nodemon très agréable, appelé kmon. Essayez cela aussi. Le référentiel kmon GitHub contient toutes les instructions nécessaires

Basé sur le plugin gulp lié à AndersNS , il y a un peu de PowerShell que vous pouvez utiliser pour redémarrer automatiquement l’application:

 @powershell -NoProfile -ExecutionPolicy unressortingcted -Command "for(;;) { Write-Output \"Starting...\"; k --watch web }" 

Si vous collez cela dans un fichier de commandes (par exemple, run.cmd ), vous pouvez facilement lancer l’application, la garder en marche et la redémarrer automatiquement pour reconstruire les modifications apscopes aux fichiers.

Assurez-vous d’ajuster la ligne de commande k si vous souhaitez utiliser une autre cible que web .