.NET 9 中没有 wasi 实验性支持
2023年10月份写过一篇《
本计划在 .NET 8 中推出的 WASI 推迟到 .NET 9
》[1],根据
此问题
[2],在 .NET 9 RTM 中似乎不会有wasi-experimental,仅使用
componentize-dotnet
[3]的项目才能工作/将被更新,WASI 实验正在 NET 10 中继续进行。
2024年9月份字节码联盟发布了一篇文章《
使用 componentize-dotnet 为 .NET/C# 开发人员简化组件
》[4],文章总结了
componentize-dotnet
项目,这是一个为.NET/C#开发者提供的工具,使得将代码编译为WebAssembly组件变得简单。这个由Bytecode Alliance发起的项目是一个NuGet包,允许从.NET应用程序创建完全AOT编译的组件,为.NET开发者提供了与Rust和TinyGo相当的组件体验。文章详细介绍了如何使用.NET 9 Preview 7和
componentize-dotnet
开始构建组件,包括安装必要的软件、配置NuGet以引用实验性包源、添加
BytecodeAlliance.Componentize.DotNet.Wasm.SDK
包到项目中,并展示了如何构建和运行一个简单的WebAssembly组件。此外,文章还探讨了如何简化组件工作流程,特别是如何使用WebAssembly Interface Type (WIT)定义来实现组件间的互操作性。最后,文章提到了.NET 9最终发布时将支持通过Mono编译器生成组件,以及
componentize-dotnet
项目将如何为用户提供选择
NativeAOT-LLVM
或Mono编译器的便利。文章鼓励有兴趣的开发者加入Bytecode Alliance社区并参与
componentize-dotnet
项目。
根据这篇文章的最新的适用于 .NET 9 RC 2 和 Wasmtime 26.0.0的代码示例:
https://github.com/henrikrxn/webassembly-experiments/blob/main/dotnet-9/componentize-dotnet/README.md[5
]
相关链接:
- [1]本计划在 .NET 8 中推出的 WASI 推迟到 .NET 9 :
https://www.cnblogs.com/shanyou/p/17739970.html - [2]在 .NET 9 中禁用构建wasi:
https://github.com/dotnet/runtime/pull/108877 - [3]componentize-dotnet:
https://github.com/bytecodealliance/componentize-dotnet - [4]
使用 componentize-dotnet 为 .NET/C# 开发人员简化组件: https://bytecodealliance.org/articles/simplifying-components-for-dotnet-developers-with-componentize-dotnet - [5].NET 9 RC 2 和 Wasmtime 26.0.0的代码示例:
https://github.com/henrikrxn/webassembly-experiments/blob/main/dotnet-9/componentize-dotnet/README.md