【问题标题】:Disabling Hot Reload for .NET Core project in Visual Studio 2019在 Visual Studio 2019 中禁用 .NET Core 项目的热重载
【发布时间】:2021-10-27 07:48:49
【问题描述】:

前段时间,Visual Studio 更新添加了热重载功能。它很方便,但也很烦人,尤其是在您进行测试并且不想重置前端的当前状态时。无论您是否在调试,Visual Studio 都会注入脚本。

如何禁用热重载?我的 Visual Studio 版本是 16.10.3

https://devblogs.microsoft.com/visualstudio/speed-up-your-dotnet-and-cplusplus-development-with-hot-reload-in-visual-studio-2022/

【问题讨论】:

    标签: .net visual-studio asp.net-core


    【解决方案1】:

    您可以在此处更改此功能:

    Tools > Options > Projects and Solutions > ASP.NET Core > Auto build and refresh option

    如果对项目进行更改时 Web 服务器正在运行,则自动构建和刷新浏览器的选项。

    您在此下拉列表中的选项如下:

    1. 根据浏览器请求自动构建(仅限 IIS)
    2. 构建后刷新浏览器
    3. 保存更改后自动构建和刷新浏览器

    还要注意我的 VS 版本是16.11.1

    【讨论】:

    • 很遗憾,我没有这个选项,所以我可能需要更新。
    • 我将其设置为无,即使在重新启动 Visual Studio 后,它仍继续将 /_framework/aspnetcore-browser-refresh.js 添加到我的 index.html 的底部。令人抓狂。
    • 是的,不幸的是,即使在 VS 2022 RTM 中,此设置也无效。 Microsoft 继续否认此支持线程中的问题:developercommunity.visualstudio.com/t/… 我最终向 uBlock 添加了一条规则来阻止此问题 - 在“我的过滤器”下,添加“*aspnetcore-browser-refresh.js*”(无引号)跨度>
    【解决方案2】:

    在 VS2022 中,以下设置禁用aspnetcore-browser-refresh.js 脚本的注入:

    【讨论】:

    • 不幸的是,这完全禁用了 .NET 热重载,这是一种防止不需要的 JS 文件被注入 HTML 响应的强硬方法。
    • 在某些情况下可能很笨拙,但正是我需要在应用 CSP 时让 YARP 满意(此症状:拒绝连接到 'ws://localhost:50071/IdentityServer/'因为它违反了以下内容安全策略指令:“default-src 'self'”。请注意,'connect-src' 没有明确设置,因此 'default-src' 用作后备。)
    • 你能给出一些指示而不是图片吗?您是如何进入 Launch Profiles 的?顶部的“调试”选项卡 -> 在弹出窗口底部打开您的“调试属性”。我的没有这些设置。
    【解决方案3】:

    这不是一个很好的解决方案,但它是一个可行的解决方法。

    在 Chromium Edge 开发者工具的“网络”选项卡中,我找到了加载 aspnetcore-browser-refresh.js 的请求。我右键单击它并选择“阻止 URL”。这会阻止脚本加载。

    【讨论】:

    • 如果您使用的是 uBlock,您还可以添加一个过滤器(在其设置中的“我的过滤器”下):“*aspnetcore-browser-refresh.js*”(不带引号)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2022-01-09
    • 2022-07-31
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    相关资源
    最近更新 更多