如何在 .NET Core 项目中使用 F# 的命令行选项?

How to use command-line options for F# within a .NET Core project?

我需要在 .NET Core 项目的 F# 代码中使用保留字之一 sig。正如手册所述:

如果使用 --mlcompatibility 编译器选项,以上关键字可用作标识符

编译环境也可以通过设置项目属性来控制。对于以 .NET Core 为目标的项目,.fsproj 中的“其他标志”属性...用于指定额外的命令行选项。

在尝试这样做的过程中,我成功地使我的项目崩溃了。

如何将命令行选项放入 .NET Core 项目中?

TIA。

关于您在 其他标志 方面遇到问题的部分 - 它需要进入 a/the PropertyGroup。这是默认 console 模板的示例:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <OtherFlags>$(OtherFlags) --mlcompatibility</OtherFlags>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="Program.fs" />
  </ItemGroup>

</Project>

遗憾的是,这不会解决您的主要问题 - 使用 sig 作为标识符仍然是一个错误(该选项只是删除了 warnings

请参阅 How do I compile F# code with ML compatibility?

中的讨论

如果你真的想使用标识符,你可以试试这个小技巧:

let ``sig`` = "F#"
printfn "Hello world %s" ``sig``