在ASP.NET vNext中,为什么代码不能动态重新编译?

时间:2014-10-15 10:56:23

标签: c# .net asp.net-core

我正在使用k web从命令行运行HelloMvc示例应用程序。我尝试使用kvm use -runtime使用不同的环境来运行它。当我更改控制器并在浏览器中按F5(或Ctrl + F5)时,代码不会自动重新编译,页面也不会更改。我做错了什么?

    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

2 个答案:

答案 0 :(得分:16)

从命令行运行dnx web只能启动主机。要获得自动重新编译的好处,需要查看文件以进行更改,并在检测到任何更改时重新启动主机。要完成此操作,请使用--watch标志并运行您的web命令:

dnx --watch web

目前,这只是在检测到更改时关闭主机,因此您需要在发生更改后重新启动它。如果从Visual Studio 14运行项目,IISExpress会为您执行此操作。

Visual Studio之外的这个工作流程最好的选择是通过JavaScript构建工具或npm脚本。我建议你研究this gulp-aspnet-k plugin(注意这个插件目前仅适用于Windows),如果你想在VS14之外工作时连续重新编译文件更改。如果没有我发现的IISExpress,似乎是实现这一目标的最佳方式。这个插件是特定于Windows的,但查看代码应该可以帮助您入门。 :)

Glenn F. Henriksen为nodemon写了一个非常好的包装器,叫做kmon。试试吧。 The kmon GitHub repository has all the instructions you need

答案 1 :(得分:3)

基于gulp plugin linked to by AndersNS,您可以使用一些PowerShell来自动重启应用程序:

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

如果您将其粘贴到批处理文件(例如run.cmd)中,您可以轻松启动应用程序,使其保持运行并自动重新启动并重建文件更改。

如果要使用除web之外的其他目标,请确保调整k命令行。