首页 > 解决方案 > 如何在 .NET Core 项目中使用 F# 的命令行选项?

问题描述

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

如果您使用 --mlcompatibility 编译器选项,则上述关键字可用作 identifiers

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

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

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

TIA。

标签: visual-studio.net-coref#

解决方案


在您遇到其他标志问题的部分- 它需要进入 a/the PropertyGroup. 以下是默认控制台模板的示例:

<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用作标识符仍然是一个错误(该选项只是删除了警告

请参阅如何编译具有 ML 兼容性的 F# 代码中的讨论?


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

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

推荐阅读