更新。在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分支中。我可能做错了什么?非常感谢。
Project&#34; /dir/src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj" (默认目标):目标CallFsSrGen:创建目录 &#34; OBJ /原/./ 34;工具 /dir/src/fsharp/FSharp.Build-proto/../../../lib/bootstrap/4.0/fssrgen.exe 以参数开始执行: /dir/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包无法找到版本 &#39; 2.6.4&#39;包装&#39; NUnit&#39;。无法找到版本&#39; 2.6.4&#39;的 包&#39; NUnit.Runners&#39;。 /dir/src/FSharpSource.targets:错误: Command&#39; mono --runtime = v4.0.30319 /dir/src/fsharp/FSharp.Build-proto/../../../.nuget/NuGet.exe restore packages.config -PackagesDirectory包&#39;退出代码:1。 任务&#34; Exec&#34;执行 - 失败完成建筑目标&#34; BeforeBuild&#34; 在项目中
答案 0 :(得分:2)
检查您正在使用的NuGet版本以及启用的NuGet包源。要么没有启用NuGet包源,要么使用带有NuGet v3包源的NuGet v2 .exe。
如果没有随您使用的FSharp构建源代码提供的NuGet.Config文件,请检查文件~/.config/NuGet/NuGet.config
中列出的软件包源。我怀疑它只有v3包源https://api.nuget.org/v3/index.json
,它不能与NuGet.exe(v2)一起使用。因此,您需要将nuget.exe更新为更高版本或将NuGet v2包源添加到NuGet.Config文件中:https://www.nuget.org/api/v2/