如何在.NET Core上直接调用F#编译器



upd。:

我想直接从.NET Core SDK调用F#编译器(即FSC(。

我知道dotnet build&co,但我不想在我只需要编译一个简单的问题时参与其中,即在FSC file.fs就足够的情况下。

我尝试在.net core sdk中搜索(在我的Mac上,它在/usr/local/share/dotnet/sdk/2.2.2.102/fsharp中(,在那里找到了一个fsc.exe文件。不幸的是,当我尝试使用dotnet/usr/local/share/dotnet/sdk/2.2.2.102/fsharp/fsharp/fsc.exe开始它时,它给了我一个错误:

error FS0193: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

env。

可能不想直接致电fsc,因为dotnet buildfsproj是构建项目的首选方法。

如果必须,则可以在SDK文件中找到:

dotnet /usr/share/dotnet/sdk/5.0.100/FSharp/fsc.exe

使用dotnet --list-sdks找到通往您的SDK的完整路径。

安装dotnet core(https://dotnet.microsoft.com/download(您应该能够从命令行构建F#项目。

cd my-fs-project
dotnet build
dotnet run

i使用fsc在Linux上使用以下方式进行编译。

来自.net 6(我在Gentoo上,但您可以推断路径(

dotnet /opt/dotnet-sdk-bin-6.0/sdk/6.0.101/FSharp/fsc.dll test.fs --targetprofile:netcore --target:exe --out:test.exe

从本地构建fsc

artifacts/bin/fsc/Debug/net5.0/fsc test.fs --targetprofile:netcore --target:exe --out:test.exe

然后,我手动创建test.runtimeconfig.json,其中包括以下内容

{
  "runtimeOptions": {
    "tfm": "net5.0",
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "5.0.0"
    },
    "rollForwardOnNoCandidateFx": 2
  }
}

然后我能够使用dotnet test.exe运行应用程序。

相关内容

  • 没有找到相关文章

最新更新