【问题标题】:View code changes without restarting the server无需重启服务器即可查看代码更改
【发布时间】:2015-05-17 16:09:31
【问题描述】:

我们使用 Visual Studio Code 和 DNX,如下所示。

启动 Web 服务器的命令行

dnx . web

project.json > 命令

"web": "Microsoft.AspNet.Hosting 
       --server Microsoft.AspNet.Server.WebListener 
       --server.urls http://localhost:5001"

请注意,为了便于阅读,我们添加了回车。

当我们更改*.cshtml 并刷新浏览器时,更改会显示在浏览器中。这很好。

当我们更改*.cs 并刷新浏览器时,更改不会显示在浏览器中。我们预计他们会这样做。要查看更改,我们需要停止 Web 服务器(在命令行中使用 Ctrl + C),然后使用 dnx . web 再次启动它。

这不是世界末日;也就是说,我认为 ASP.NET 5 的功能之一是无需重新编译等即可刷新。

我们如何更改*.cs 代码并刷新浏览器以查看更改,而无需重新启动 DNX 网络服务器?

我们尝试运行 dnx --watch . web 时遇到的问题是,如果我们更改 *.cs 文件,那么 Web 服务器将停止,我们必须重新启动它。

【问题讨论】:

    标签: c# asp.net asp.net-core visual-studio-code dnx


    【解决方案1】:

    动态更改代码功能仅在运行没有调试时有效。我假设您只需从 VS 中按 F5(调试),它实际上附加了一个调试器。尝试不使用它应该可以工作。

    长话短说:为了刷新后面的代码,服务器必须重新启动。从命令行运行时,服务器会停止并且永远不会重新启动 - 您必须自己处理,就像@tugberk 建议的那样 - 但是从 VS 运行时,工具会为您处理。

    【讨论】:

    • 有 dnx-watch 。不是吗?
    • 是的,我们昨天刚刚发布了
    【解决方案2】:

    这是预期的行为。您可以使用 gulp-aspnet-k 之类的东西来自动执行此过程。更详细的信息在这里:Building and Running Your ASP.NET vNext Application with Gulp

    请注意,不幸的是,这个 gulp 集成 only works on Windows now 但它所做的只是对 watch the dnx process and restart it again

    【讨论】:

    • npm 包已重命名为 gulp-aspnet-dnx(正如人们所期望的那样)。但这不是必需的。在 Windows 上运行这个 powershell:for(;;) { Write-Output "Starting..."; dnx --watch . web }
    【解决方案3】:

    有一个命令可以用于此,称为 dnx-watch。在询问原始问题时它不存在,但在 2015 年 9 月的 beta 8 中添加。您使用安装它

    dnu 命令安装 Microsoft.Dnx.Watcher 您只需将传递给 dnx 的命令传递给它即可运行它。所以,替换

    dnx web
    

    dnx-watch web
    

    您可以在这里了解更多信息:http://ardalis.com/get-started-with-dnx-watch

    【讨论】:

    • 有没有办法热重载(就像 webpack 一样)这里是重启 web 进程(使用 dnx-watch web 时)但是你仍然需要按 F5 来查看更改
    • 我不知道;仅供参考,它正在转向使用 dotnet-watch,这里:github.com/aspnet/dotnet-watch
    • 谢谢,我找到了这个项目NodeServices-Webpack。我试过了,但由于它处于 alpha 阶段,我无法让它工作,所以会等一下,直到它更稳定
    猜你喜欢
    • 2015-02-05
    • 2015-11-16
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 2017-03-07
    • 1970-01-01
    相关资源
    最近更新 更多