在Visual Studio 2019中禁用.NET Core项目的热重载

27
6个回答

25

您可以在此更改此功能:

工具 > 选项 > 项目和解决方案 > ASP.NET Core > 自动构建和刷新选项

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

此下拉菜单中的选项如下:

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

还请注意我的 VS 版本为 16.11.1


很遗憾,我没有这个选项,所以我可能需要更新。 - Brian
7
我将其设置为“none”,即使重新启动 Visual Studio,它仍会在我的 index.html 底部添加 /_framework/aspnetcore-browser-refresh.js。真是让人发疯。 - flyer
4
很遗憾,即使在VS 2022 RTM中,这个设置也没有效果。微软在这个支持主题中继续否认这个问题:https://developercommunity.visualstudio.com/t/how-to-disable-hot-reload-for-aspnet-core-projects/1506697?from=email&viewtype=all#T-ND1578834 最终我添加了一个规则到uBlock来阻止这个——在"My filters"下添加"*aspnetcore-browser-refresh.js*"(不带引号)。 - Andrew
这个建议是完全错误的。它是用于控制热重载未在其他地方设置的情况。 - user1029883

9

使用CLI时,您需要执行以下操作

dotnet watch --no-hot-reload

8
在VS2022中,取消项目调试属性下的“启用热重新加载”设置将禁用aspnetcore-browser-refresh.js脚本的注入。
以下截图展示了访问该设置的一种方式:

Visual Studio debug menu

Visual Studio debug profile


不幸的是,这会完全禁用.NET热重载,这是一种有点过度的方法,以防止不需要的JS文件被注入到HTML响应中。 - Andrew
在某些情况下可能有些过于严格,但正是我需要的,以使YARP在应用CSP时保持良好状态(这种症状:拒绝连接到'ws://localhost:50071/IdentityServer/',因为它违反了以下内容安全策略指令:“default-src 'self'”。请注意,'connect-src'没有明确设置,因此使用'default-src'作为后备。) - unbob
1
你能给一些指示吗,而不是一张图片吗?你如何进入“启动配置文件”?在顶部的“调试”选项卡 -> 在弹出窗口底部打开你的“<我的应用程序> 调试属性”。我的没有这些设置。 - J_sdev
正是我所需要的! - HelloWorld

7

在VS 2022中打开位于Properties文件夹中的launchSettings.json文件

找到您的配置文件并添加(见箭头,不要添加箭头)

{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "profiles": {
    "Gang.Bingo.Web": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "https://localhost:7249;http://localhost:5249",
      "dotnetRunMessages": true,
      "hotReloadEnabled": false   <===========
    }
  }
}```

有没有想法如何在 dotnet watch run 中实现这个?该命令似乎忽略了它,在启动时仍然会显示“热重载已启用”。 - Squirrelkiller
1
@Squirrelkiller,请看我的回答。 - MonkeyDreamzzz

7

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

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


如果您使用uBlock,您还可以在其设置中添加一个过滤器(位于“我的过滤器”下):“\ * aspnetcore-browser-refresh.js \ *”(不带引号) - Andrew

3

我曾经遇到过同样的问题,需要前往工具 > 选项 > 调试 > 通用

并检查此选项:启用编辑和继续以及热重载

enter image description here


问题在于你必须同时禁用热重载和编辑并继续功能。 - zumalifeguard
这是唯一适用于我(VS 2022 17.7.0)的版本。 - Cătălin Rădoi

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