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

6

我正在使用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

@Patrick Hofman,难道感谢和个人关怀不再被允许了吗? ;) - martijn_himself
1
不可以。而且从来都不行。请参考http://meta.stackexchange.com/questions/5029/are-taglines-signatures-disallowed#468725,例如:“请不要在您的帖子中使用签名或标语”。 - Patrick Hofman
触碰。你必须无情!干得好。 - martijn_himself
没问题。只是想保持网站的简洁明了。 - Patrick Hofman
2个回答

16

在命令行中运行dnx web只会启动您的主机。要获得自动重新编译的好处,需要有某个东西监视文件的更改,并在检测到任何更改时重新启动您的主机。为了实现这一点,请使用--watch标志,并像这样运行您的Web命令:

运行dnx web --watch

dnx --watch web

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

除了Visual Studio之外,您在工作流程方面最好的选择是使用JavaScript构建工具或npm脚本。如果您想要在VS14之外工作时在文件更改时进行持续编译,我建议您尝试 这个gulp-aspnet-k插件(请注意,此插件目前仅适用于Windows)。这似乎是我发现的最佳方式,可以在没有IISExpress的情况下实现这一目标。该插件是/曾经是Windows特定的,但查看代码应该能让您入门。:)

Glenn F. Henriksen编写了一个非常不错的nodemon包装器,叫做kmon。您也可以尝试一下。 kmon GitHub存储库中有您所需的所有说明


我无法在 Mac OS X 上运行它? - Bagusflyer

3

根据AndersNS提供的gulp插件,你可以使用一些powershell脚本来自动重启应用程序:

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

如果您将此代码放入批处理文件(例如run.cmd),则可以轻松启动应用程序,并在文件更改时自动重新启动和重建。请确保如果您想使用除web之外的其他目标,则调整k命令行参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接