是否可以将F#应用程序编译为独立的本机可执行文件,如程序或库,以便在其他本机程序中使用?
如果是这样,可以为Windows,Linux和macOS做到吗?
谢谢,
即将发布的 .NET 7 版本将附带 Native AOT:
\n\n\n本机 AOT 类似于 .NET\xe2\x80\x99s 现有的 AOT 技术,但它仅生成本机工件。事实上,本机 AOT 运行时不知道如何读取 .NET 程序集文件格式 \xe2\x80\x93 一切都是平台本机的。可执行文件格式解析完全由底层操作系统处理。
\n
您可以在https://github.com/dotnet/runtime/issues/61231中跟踪本机 AOT 开发进度。
\n此外,F#-to-JS 编译器 Fable 将在其即将发布的版本中包含 Rust 编译目标:
\n\n\n将 F# 编译为 Rust 的好处之一是提供 .NET Native AOT 编译为本机二进制文件的替代方案,但占用空间更小。另一个有趣的应用是 Rust 可以通过 wasm-pack 编译为 WebAssembly。F# 和 Blazor 已经可以实现这一点,但与使用 Rust 的本机应用程序一样,您不必在应用程序中包含整个 .NET 运行时。
\n
根据此Visual Studio UserVoice 条目,目前正在进行中为.Net Native添加F#支持的工作:
.NET Native编译器中对F#的支持正在进行中.F#团队与.NET Native团队合作,在他们的GitHub上发布了一个更新,可以在这里找到:https://github.com/Microsoft/visualfsharp/issues/1096.