将F#应用程序编译为独立的本机可执行文件?

mlj*_*jrg 10 f#

是否可以将F#应用程序编译为独立的本机可执行文件,如程序或库,以便在其他本机程序中使用?

如果是这样,可以为Windows,Linux和macOS做到吗?

谢谢,

Ale*_*ksi 9

即将发布的 .NET 7 版本将附带 Native AOT

\n
\n

本机 AOT 类似于 .NET\xe2\x80\x99s 现有的 AOT 技术,但它仅生成本机工件。事实上,本机 AOT 运行时不知道如何读取 .NET 程序集文件格式 \xe2\x80\x93 一切都是平台本机的。可执行文件格式解析完全由底层操作系统处理。

\n
\n

您可以在https://github.com/dotnet/runtime/issues/61231中跟踪本机 AOT 开发进度。

\n

此外,F#-to-JS 编译器 Fable 将在其即将发布的版本中包含 Rust 编译目标:

\n
\n

将 F# 编译为 Rust 的好处之一是提供 .NET Native AOT 编译为本机二进制文件的替代方案,但占用空间更小。另一个有趣的应用是 Rust 可以通过 wasm-pack 编译为 WebAssembly。F# 和 Blazor 已经可以实现这一点,但与使用 Rust 的本机应用程序一样,您不必在应用程序中包含整个 .NET 运行时。

\n
\n


dpe*_*ish 8

根据此Visual Studio UserVoice 条目,目前正在进行中为.Net Native添加F#支持的工作:

.NET Native编译器中对F#的支持正在进行中.F#团队与.NET Native团队合作,在他们的GitHub上发布了一个更新,可以在这里找到:https://github.com/Microsoft/visualfsharp/issues/1096.

  • 现在正在关注此问题:https://github.com/dotnet/corert/issues/6055 (2认同)