如何在 ASP.NET Core(.NET 6、VS 2022)中禁用浏览器链接

Tom*_*rek 42 c# visual-studio browser-link .net-core asp.net-core

我已禁用 Visual Studio 2022 内的浏览器链接,并且还禁用了所有热重载功能。

启用浏览器链接未选中

热重载设置已禁用

甚至浏览器链接仪表板也表明应该禁用它:

浏览器链接仪表板

我也没有在我的代码中的任何地方使用任何代码app.UseBrowserLink();(如ASP.NET Core 中的浏览器链接中所述)

然而,这些中间件仍然以某种方式出现在请求管道中:

  • Microsoft.AspNetCore.Watch.BrowserRefresh.BrowserRefreshMiddleware
  • Microsoft.WebTools.BrowserLink.Net.BrowserLinkMiddleware

这些中间件将其添加到我的 HTML 中:

<!-- Visual Studio Browser Link -->
<script type="text/javascript" src="https://localhost:44399/0928d478a97d441187231f2a1a7cd5e5/browserLink" async="async" id="__browserLink_initializationData" data-requestId="c94cf93088fb44e98f4e499b20ad7bfe" data-requestMappingFromServer="False"></script>
<!-- End Browser Link -->

<script src="/_framework/aspnetcore-browser-refresh.js"></script></body>
Run Code Online (Sandbox Code Playgroud)

每次我保存文件时,它都会重新加载浏览器。我想阻止这种行为,但我已经没有选择了。

这是 IIS Express 或 Visual Studio 自动添加的内容吗?

我还检查了所有包和 DLL,但我没有看到它包含在我的代码中的任何位置。它必须通过 Visual Studio 2022 所做的一些“魔法”自动包含在内。

我如何停止所有这些重新加载?我不需要任何浏览器链接或浏览器刷新。请帮忙,我花了很多时间在这上面,我很绝望。

ton*_*lla 42

你快到了。您只需要配置以下内容(不要忘记重新启动 VS):

图片1

图片2

  • 嗯,所以如果我想摆脱这个脚本,就无法继续使用旧的“编辑并继续”功能... (7认同)
  • 我还必须从项目 launchSettings.json 配置文件中删除“inspectUrl”属性,以使其最终停止将 Visual Studio 浏览器链接脚本注入每个页面。+1 (2认同)

Suc*_*man 9

Visual Studio 使用 .NET Core 的Startup Hook功能来注入这些中间件,如果您在 Program.cs 的第一行设置断点并System.Environment.GetEnvironmentVariable("DOTNET_STARTUP_HOOKS")在调试器中进行评估,您可以看到哪些钩子从哪里加载。如果您现在去重命名它尝试加载的文件,它将无法再执行此操作,并且您将摆脱 browserLink!。

例如,就我而言,它正在加载

"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\Web Tools\Browser Link\Microsoft.WebTools.BrowserLink.Net.dll"
"C:\Program Files\dotnet\sdk\6.0.201\DotnetTools\dotnet-watch\6.0.201-servicing.22124.17\tools\net6.0\any\middleware\Microsoft.AspNetCore.Watch.BrowserRefresh.dll"
Run Code Online (Sandbox Code Playgroud)

所以我重命名了它们,_在它们前面添加了一个,这使得脚本注入消失了。