如何在 .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``
我需要在 .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``