将现有 C# 代码编译为 WebAssembly
Posted
技术标签:
【中文标题】将现有 C# 代码编译为 WebAssembly【英文标题】:Compiling existing C# code to WebAssembly 【发布时间】:2021-01-26 12:31:30 【问题描述】:是否可以将现有的 C# 代码编译为 WebAssembly (.wasm),从而无需或几乎无需更改代码? 我必须使用 Blazor 还是其他可能性?
【问题讨论】:
目前 (.NET 5.0),Blazor 不会将您的代码编译为 WebAssembly。相反,它使用已编译为 WebAssembly 的 .NET 运行时来解释代码的 IL。 非常感谢,我可以使用现有的 C# 代码了吗? 【参考方案1】:是否可以将现有的 C# 代码编译为 WebAssembly (.wasm)
不,还没有编译器。但是
所以不需要或几乎不需要更改代码?
这很简单,您只需将 .net DLL(包)添加到您的项目中即可。 只要确保代码在浏览器中有意义,即没有线程,除了 HttpClient 等没有 I/O。
我必须使用 Blazor 还是其他可能性?
目前只有 Blazor。
【讨论】:
嗯,有微软的 NativeAOT(以前是 CoreRT)github.com/dotnet/runtimelab/blob/feature/NativeAOT-LLVM/docs/…。它不是官方支持的分支,社区在 Microsoft 的帮助下为其做出贡献。它会将一些 c# 代码编译为 Wasm(使用 emscripten 和 LLVM 编译器)。您可以查看 HelloWasm.cs 测试桶以了解应该如何工作:github.com/dotnet/runtimelab/blob/feature/NativeAOT-LLVM/src/… @SWaye 您的答案比投票答案更接近 :) 谢谢!以上是关于将现有 C# 代码编译为 WebAssembly的主要内容,如果未能解决你的问题,请参考以下文章
将 protobuf-net RuntimeTypeModel 编译为 C#,而不是 DLL