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

mi7gmzs6  于 2023-04-22  发布在  .NET
关注(0)|答案(4)|浏览(414)

我已经在Visual Studio 2022中禁用了浏览器链接,并且还禁用了所有热重新加载功能。

甚至浏览器链接 Jmeter 板也指示应该禁用它:

在我的代码中,我也不使用任何app.UseBrowserLink();代码。(如Browser Link in 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>

每次我保存一个文件,它就会重新加载浏览器。我想停止这种行为,但我没有办法了。
这是IIS Express或Visual Studio自动添加的内容吗?
我还检查了所有的包和DLL,我没有看到它包含在我的代码中的任何地方。它必须通过Visual Studio 2022的一些“魔术”自动包含。

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

kx5bkwkv

kx5bkwkv1#

你几乎已经完成了。你只需要配置以下内容(不要忘记重新启动VS):

qoefvg9y

qoefvg9y2#

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"

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

l3zydbqr

l3zydbqr3#

更多需要取消检查!x1c 0d1x
这真的很难unroot功能。

7fhtutme

7fhtutme4#

由于Microsoft似乎无法在Visual Studio中发布补丁,除非它包含禁用BrowserLink的新设置,因此请尝试将新的Auto build and refresh option设置为None

相关问题