在Mono下,由于NuGet错误,fsharp编译失败

时间:2017-07-08 14:38:26

标签: f# mono nuget

更新。在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;   在项目中

1 个答案:

答案 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/