更新。在Matt Ward的帮助下,我找到了这个问题的原因是一个坏的配置文件。以下的~/.config/NuGet/NuGet.Config对我有效。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" protocolVersion="2" />
</packageSources>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
我可以毫无问题地完成以下任务:
/opt/mono/mono-5.2.0.196-tarball/bin/mono ~/nuget.exe install -version 2.6.4 nunit
然而,当我尝试在相同的Mono安装下编译fsharp时,我会遇到以下错误。这是在fsharp4分支中。请问我可能做错了什么呢?非常感谢。
引用块: 项目“/ dir / src / fsharp / FSharp.Build-proto / FSharp.Build-proto.fsproj”(默认目标): 目标CallFsSrGen:已创建目录“ obj / proto / ./” 工具/dor/src/fsharp/FSharp.Build-proto/../../../lib/bootstrap/4.0/fssrgen.exe 执行时使用参数: /dor/src/fsharp/FSharp.Build/FSBuild.txt obj/proto/./FSBuild.fs FSBuild.resx 目标BeforeBuild:正在执行:mono --runtime = v4.0.30319 /dir/src/fsharp/FSharp.Build-proto/../../../.nuget/NuGet.exe restore packages.config -PackagesDirectory packages 无法找到版本为'2.6.4'的软件包'NUnit'。 无法找到版本为'2.6.4'的软件包'NUnit.Runners'。/dir/src/FSharpSource.targets: error : 命令'mono --runtime=v4.0.30319 /dir/src/fsharp/FSharp.Build-proto/../../../.nuget/NuGet.exe restore packages.config -PackagesDirectory packages'退出代码为:1。 任务“Exec”执行--FAILED在项目中完成构建目标“BeforeBuild”。
~/.config/NuGet/NuGet.config
。我怀疑它只有 v3 包源:https://api.nuget.org/v3/index.json
。因此,您需要更新 nuget.exe 到较新版本或将 NuGet v2 包源添加到您的 NuGet.Config 文件中:https://www.nuget.org/api/v2/
。 - Matt Ward