首页 > 解决方案 > 使用 SkiaSharp 时 Uno Wasm 项目无法编译

问题描述

在我安装NuGet 包后SkiaSharp.Views.Uno,我所有的 Uno Platform WebAssembly 项目都无法编译。SkiaSharp.NativeAssets.WebAssembly它可以在没有这些包的情况下正确编译,这发生在每个 WebAssembly 项目中。

错误详情

我在编译 WebAssembly 项目时遇到的错误如下:

System.Exception: Failed to generate AOT layout (More details are available in diagnostics mode or using the MSBuild /bl switch)
   at Uno.Wasm.Bootstrap.ShellTask_v6068e93c4525d2d4df3d9218f789d6f8a43d0b20.RunPackager() at D:\a\1\s\src\Uno.Wasm.Bootstrap\ShellTask.cs:line 837
   at Uno.Wasm.Bootstrap.ShellTask_v6068e93c4525d2d4df3d9218f789d6f8a43d0b20.Execute() at D:\a\1\s\src\Uno.Wasm.Bootstrap\ShellTask.cs:line 229

当我使用带有 command 的命令行编译项目时msbuild /bl,它在以下行之后失败:

[00:00:02.1827265] Done resolving assemblies
Running [C:\Users\Ader\source\repos\UnoSkiaTest\UnoSkiaTest\UnoSkiaTest.Wasm\obj\Debug\net5.0\workAot]: cmd /c "C:\Users\Ader\.uno\emsdk\emsdk-2.0.23\emsdk\emsdk_env.bat 2>&1 && C:\Users\Ader\AppData\Local\Temp\dotnet-runtime
  -wasm-windows-d277d04-cbe463bfb60-1238462436-Release\tools\ninja.exe "
  [00:00:00.0210385] The system could not find the specified path.

我做什么来重现错误

  1. 使用Multi-Platform App (Uno Platform)模板创建新的 Uno Platform 解决方案。
  2. 移除除 UWP 和 Wasm 之外的所有项目头。
  3. 向 Wasm 头添加SkiaSharp.Views.Uno和NuGet 包。SkiaSharp.NativeAssets.WebAssembly
  4. 编译 Wasm 头。编译失败,出现上述错误。

我试过的

我尝试了以下方法,但没有成功:

我不知道如何解决这个问题,并且已经为此烦恼了一段时间。

标签: c#nugetwebassemblyskiasharpuno

解决方案


推荐阅读