在 ASP.NET vNext 中,为啥没有即时重新编译代码?
Posted
技术标签:
【中文标题】在 ASP.NET vNext 中,为啥没有即时重新编译代码?【英文标题】:In ASP.NET vNext, why is code not recompiled on the fly?在 ASP.NET vNext 中,为什么没有即时重新编译代码? 【发布时间】:2014-12-10 10:15:44 【问题描述】:我正在使用 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 多么感谢您和不再允许个人接触? ;) 没有。而且从来没有。请参阅meta.stackexchange.com/questions/5029/… 例如:“请不要在您的帖子中使用签名或标语”。 触摸。你必须无情!干得好。 没问题。只是试图让网站保持清晰和重点。 【参考方案1】:从命令行运行dnx web
只会启动您的主机。为了获得自动重新编译的好处,需要观察文件的更改并在检测到任何更改时重新启动主机。要完成此操作,请使用--watch
标志并像这样运行您的网络命令:
dnx --watch web
目前这只是在检测到更改时关闭您的主机,因此您需要在发生更改时重新启动它。如果您从 Visual Studio 14 运行项目,IISExpress 会为您执行此操作。
在 Visual Studio 之外执行此工作流的最佳选择是通过 javascript 构建工具或 npm 脚本。如果您想在 VS14 之外工作时连续重新编译文件更改,我建议您查看this gulp-aspnet-k plugin(请注意,此插件目前仅适用于 Windows)。似乎是在没有我发现的 IISExpress 的情况下实现这一目标的最佳方法。这个插件是/是特定于 Windows 的,但是查看代码应该可以帮助您入门。 :)
Glenn F. Henriksen 为 nodemon 编写了一个非常好的包装器,称为 kmon。也试试看。 The kmon GitHub repository has all the instructions you need
【讨论】:
我无法在 mac OS X 中运行它?【参考方案2】:基于gulp plugin linked to by AndersNS,有一点powershell可以用来自动重启应用:
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "for(;;) Write-Output \"Starting...\"; k --watch web "
如果您将其粘贴到批处理文件中(例如run.cmd
),您可以轻松启动应用程序,使其保持运行,并在文件更改时自动重新启动和重建。
如果您想使用除web
之外的其他目标,请确保调整 k 命令行。
【讨论】:
以上是关于在 ASP.NET vNext 中,为啥没有即时重新编译代码?的主要内容,如果未能解决你的问题,请参考以下文章
在 asp.net 5/vnext 上的磁盘上没有 dll 的代码合同
ASP.NET 5 - 启动 ASP.NET vNext 项目