elt*_*are 31 .net c# .net-core webassembly
我希望能够从 JavaScript 调用 C# 代码。mono 项目曾经有一个 WASM SDK,您可以从他们的旧 Jenkins 服务器下载它,但不再公开。现有文档倾向于指向这些构建。Azure Devops 版本不包含此 SDK。我在他们的 Github 帐户上看到的一些消息表明他们现在专注于 WASM 的 .NET 6。我不想使用 Blazor 组件。.NET 6 中有没有办法在没有 Blazor UI 的情况下构建最小大小的 WASM 二进制文件?
Pet*_*ore 16
是的,这绝对有可能。Blazor 并没有垄断 C#/WASM,而且目前还不清楚它最终是否会成为最佳的长期选择(很多证据表明事实并非如此)。
我建议从 Uno WASM Bootstrap 开始。https://github.com/unoplatform/Uno.Wasm.Bootstrap
2022-06-30 编辑 - 更多证据 Blazor 不是城里唯一的游戏,甚至也不是这里创新的前沿: https: //visualstudiomagazine.com/articles/2022/06/29/uno-platform-4-4。 ASPX
NativeAOT-LLVM 是一个未经 Microsoft 官方支持的实验性 C# 编译器,( https://github.com/dotnet/runtimelab/tree/feature/NativeAOT-LLVM ) 也可以将 C# 编译为 Wasm,无需任何 UI 框架要求。在Compiling C# project to WebAssembly中有一个关于库的类似问题
Mono WASM SDK 在 dotnet/runtime 存储库中继续。基于旧Packager.exe 的工具已演变为基于 MSBuild/csproj 的解决方案:
https://github.com/dotnet/runtime/tree/main/src/mono/wasm
示例: https: //github.com/dotnet/runtime/tree/main/src/mono/sample/wasm
当我尝试在自定义项目(不在示例中)中使用代码时,关键问题是我们需要引用Microsoft.NETCore.App.Runtime.browser-wasmSystem.Private.Runtime.InteropServices.JavaScript.dll中包含的私有程序集。该代码与旧的 mono wasm sdk 中几乎相同。WebAssembly.Bindings.dll
这是我基于 dotnet/runtime/mono/wasm 创建的 WebGL 页面的屏幕截图:

顺便说一句,有一种观点认为通过从 C# 调用 JavaScript 函数来实现 WebGL 的性能很差: https: //marcoscobena.com/ ?i=wave-engine-web-performance
| 归档时间: |
|
| 查看次数: |
20051 次 |
| 最近记录: |