如何在 .NET Core 项目中使用 F# 的命令行选项?
Posted
技术标签:
【中文标题】如何在 .NET Core 项目中使用 F# 的命令行选项?【英文标题】:How to use command-line options for F# within a .NET Core project? 【发布时间】:2021-04-30 04:08:29 【问题描述】:我需要在 .NET Core 项目中的 F# 代码中使用保留字 sig 之一。正如手册所述:
如果您使用 --mlcompatibility 编译器选项,上述关键字可用作标识符。
也可以通过设置项目属性来控制编译环境。对于面向 .NET Core 的项目,.fsproj 中的“其他标志”属性...用于指定额外的命令行选项。
在尝试这样做时,我成功地使我的项目崩溃了。
如何将命令行选项放入 .NET Core 项目中?
TIA。
【问题讨论】:
【参考方案1】:在您遇到其他标志问题的部分 - 它需要进入/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
作为标识符仍然是一个错误(该选项只是删除了 警告)
查看How do I compile F# code with ML compatibility?中的讨论
如果你真的想使用标识符,你可以试试这个小技巧:
let ``sig`` = "F#"
printfn "Hello world %s" ``sig``
【讨论】:
以上是关于如何在 .NET Core 项目中使用 F# 的命令行选项?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 .NET Core 3.1 中的 F# 访问 WCF 服务?
将项目从 2.2 更新到 3.1(缺少程序集)或如何在 .NET Core 中使用 API POST 请求时,PostAsJsonAsync()在 .Net Core 3.1 中不起作用 [重复]
如何将 .net core Web API 项目添加到现有的 .NET core (3.1) Web Application 项目中?