如何从浏览器中清除 Blazor WebAssembly DLL?

How to clean out Blazor WebAssembly DLLs from browser?

我 运行 两个示例 Blazor WebAssembly 应用程序不小心在 https://localhost:44381 的同一端口上,然后事情就搞砸了。其中一个应用程序出错,因为它尝试从另一个示例应用程序加载 DLL,但失败了。我尝试转到浏览器的 devtool Application > Clear storage,但没有帮助。如何从浏览器中彻底清除 Blazor WebAssembly 应用程序的 DLL,以便我可以重新开始?

Chrome 和新的 Edge 按 F12。这将打开开发人员工具。虽然这是打开的,但右键单击浏览器上的刷新页面图标。在该菜单上选择清空缓存和硬刷新。这是清除所有内容(包括图标和 PWA 设置)的唯一方法。

3.1 版的 Blazor WASM 应用程序下载一个文件 blazor.boot.json,其中列出了程序集以及用于指示版本的 sha256 哈希。这些程序集现在下载到浏览器的 应用程序缓存存储 (参见下面的示例)。

Application -> Clear storage 应该可以工作 - 检查是否在 Application -> Clear storage 页面上选择了 应用程序缓存

使用清空缓存和硬重新加载不会清除此缓存,但会重新加载blazor.boot.json文件,如果缓存文件已更改(哈希值不同),则应重新加载它们。

您还可以从“缓存存储”视图中清除单个程序集 - right-click 并且您可以删除它们。当您刷新应用程序时,Blazor 将下载最新版本。

只需按 Ctrl+F5 它会清除缓存并再次获取文件。

在您的 .csproj(对于您的 wasm 站点)文件中,您可以强制应用在每次请求时下载资源。第一次加载时性能受到一些影响,但可以帮助您解决当前的问题。

<PropertyGroup>
   <BlazorCacheBootResources>false</BlazorCacheBootResources>
</PropertyGroup>

有一些注意事项 - 请参阅此处的文档:https://docs.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/webassembly?view=aspnetcore-5.0#disable-integrity-checking-for-non-pwa-apps-1