如何运行已发布的非托管Blazor WebAssembly项目?
Blazor WASM发布后执行dll报错的问题
核心原因
你错误地用dotnet.exe直接执行Blazor WebAssembly的dll文件——这类dll是专为浏览器的WebAssembly运行环境编译的,根本不能在桌面.NET Runtime下执行,和hostpolicy.dll的位置无关。
关于hostpolicy.dll的位置
hostpolicy.dll是.NET Core/.NET 5+桌面/服务器应用的宿主组件,默认存放在你本地安装的.NET Runtime目录中,比如C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.x(x对应具体版本号)。但它完全不适用于Blazor WASM的程序集。
正确运行发布后的Blazor WASM应用
- 方式1:在publish目录下执行
dotnet run,会自动启动本地服务器托管wwwroot内容。 - 方式2:用静态文件服务器托管wwwroot目录,比如先安装
dotnet-serve工具(dotnet tool install -g dotnet-serve),然后在wwwroot目录执行dotnet serve。 - 方式3:将wwwroot目录部署到IIS、Nginx等支持静态文件的Web服务器,通过浏览器访问对应地址。
内容的提问来源于stack exchange,提问作者alexanp
相关产品推荐
相关产品推荐

