直接调用F#编译器(FSC)时发生链接错误

直接调用F#编译器(FSC)时发生链接错误,f#,F#,我试图通过直接调用FSC来理解F#编译过程 我想: 下载SDK 将其解压缩到本地文件夹 在几个F#源文件上调用FSC 输出一个独立的Linux可执行文件 这是我的剧本: #/usr/bin/env bash set-e SDK_URL=”https://download.visualstudio.microsoft.com/download/pr/820db713-c9a5-466e-b72a-16f2f5ed00e2/628aa2a75f6aa270e77f4a83b3742fb8/dot

我试图通过直接调用FSC来理解F#编译过程

我想:

  • 下载SDK
  • 将其解压缩到本地文件夹
  • 在几个F#源文件上调用FSC
  • 输出一个独立的Linux可执行文件
这是我的剧本:

#/usr/bin/env bash
set-e
SDK_URL=”https://download.visualstudio.microsoft.com/download/pr/820db713-c9a5-466e-b72a-16f2f5ed00e2/628aa2a75f6aa270e77f4a83b3742fb8/dotnet-sdk-5.0.100-linux-x64.tar.gz"
SDK=./dotnet\u SDK
如果[!-d$SDK]
然后
echo“获取SDK…”
wget-c$SDK\u URL
echo“解包SDK…”
mkdir-p$SDK
tar-xzf./dotnet-sdk-5.0.100-linux-x64.tar.gz——目录$sdk
fi
$SDK/dotnet$SDK/SDK/5.0.100/FSharp/fsc.exe\
-I$SDK/shared/Microsoft.NETCore.App/5.0.0\
--targetprofile:netcore\
--确定性\
--无框架\
--独立的\
--目标:exe\
--输出:hello.exe\
//你好
我的程序
Hello.fs

[]
让主argv=
printfn“你好,世界。”
0
但是,当我运行脚本时,会出现以下错误:

Microsoft (R) F# Compiler version 11.0.0.0 for F# 5.0 
Copyright (c) Microsoft Corporation. All Rights Reserved. 
error FS2008: Static linking may not include a mixed managed/unmanaged DLL

我在这里遗漏了什么?

我能够重现这个错误。这意味着你在尝试,但我不知道是哪一个。我认为
standalone
netcore
配置文件之间存在一些冲突。对这一点的支持似乎很有限。FWIW,当我使用
netstandard
配置文件时,或者当我在Windows上使用
netcore
standalone
时,我没有收到相同的错误。@brianberns谢谢。如果我不使用
--standalone
构建,那么如何生成
runtimeconfig.json
文件?使用
netcore
配置文件可以生成
runtimeconfig.json
文件,对吗?假设这一点很重要(尤其是在Linux上),也许您可以不使用
--standalone
--targetprofile:netcore
而不使用
--standalone
仍然无法为我生成
runtimeconfig.json
。不幸的是,我对直接运行编译器了解不够,无法回答这个问题。你会考虑创建一个<代码> fsPROJ< /COD>文件吗?然后您可以运行
dotnet build
,它肯定会创建一个
runtimeconfig.json
文件。