👉 Web Assembly
在浏览器中使用WebAssembly
- 安装
wasm-tools
工作负载工具。请参阅 dotnet 文档,如果你安装了旧版的.NET SDK,它可能会要求你安装其他工作负载,比如wasm-experimental
。
dotnet workload install wasm-tools
- 安装或更新dotnet模板到最新版本。
dotnet new install avalonia.templates
- 创建一个新目录用于项目。
mkdir BrowserTest
cd BrowserTest
- 生成一个支持在浏览器中运行的新项目。
dotnet new avalonia.xplat
- 为了运行,请执行以下操作:
cd BrowserTest.Browser
dotnet run
- 在控制台输出中,您将看到打开应用程序的HTTP和HTTPS链接。
互操作性
可以从Avalonia Web应用程序调用JavaScript代码。Avalonia应用程序与Microsoft的标准 [JSImport]/[JSExport] 互操作性兼容。您可以在 它们的文档 上找到更多信息。
传统的Blazor后端
从Avalonia 11.0 开始,Avalonia.Browser 包依赖于内置的.NET互操作性,具有更好的稳定性和性能。传统的Blazor后端仍然可用于兼容性,并且可以通过引用 Avalonia.Browser.Blazor 包来使用。
故障排除
如果您尚未执行安装所需工作负载的步骤,后续在浏览器中运行应用程序时将可能遇到错误(例如 System.DllNotFoundException: libSkiaSharp
),您需要重新构建才 能运行该应用程序。
请记住,WebAssembly 作为一种技术总体上是有限的。任何浏览器都不支持 .NET 多线程,只从 .NET 8 开始才支持多线程。任何普通应用程序都必须遵守浏览器沙盒机制。虽然 Avalonia 会尽力保持高性能,但在某些情况下,任何 WebAssembly GUI应用程序的运行速度都可能较慢,或者在使用旧版浏览器时也是如此。