Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#build在更新mono后找不到两个包_F#_F# Fake_Paket_Ionide - Fatal编程技术网

F#build在更新mono后找不到两个包

F#build在更新mono后找不到两个包,f#,f#-fake,paket,ionide,F#,F# Fake,Paket,Ionide,我在Linux下已有一个F#/Mono/paket/fake项目,用于正确编译 我使用apt-get更新了mono,现在我的项目无法编译 它找不到两个引用的包:MathNet.Numerics和Newtonsoft.Json 以下是我在构建项目时得到的信息: Primary reference "MathNet.Numerics". /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets(1980,5): wa

我在Linux下已有一个F#/Mono/paket/fake项目,用于正确编译

我使用apt-get更新了mono,现在我的项目无法编译

它找不到两个引用的包:MathNet.Numerics和Newtonsoft.Json

以下是我在构建项目时得到的信息:

Primary reference "MathNet.Numerics".
/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets(1980,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "MathNet.Numerics". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [/home/bleakcabal/Documents/projects/genesis/genesis/genesis/genesis.fsproj]
          For SearchPath "{TargetFrameworkDirectory}".
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.5/MathNet.Numerics.winmd", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.5/MathNet.Numerics.dll", but it didn't exist.
          Considered "/usr/lib/mono/xbuild-frameworks/.NETFramework/v4.5/MathNet.Numerics.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.5-api/MathNet.Numerics.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.5-api/MathNet.Numerics.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.5-api/MathNet.Numerics.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.5-api/Facades/MathNet.Numerics.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.5-api/Facades/MathNet.Numerics.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.5-api/Facades/MathNet.Numerics.exe", but it didn't exist.
          Considered "/usr/lib/mono/4.5-api/Facades/MathNet.Numerics.winmd", but it didn't exist.
          Considered "/usr/lib/mono/4.5-api/Facades/MathNet.Numerics.dll", but it didn't exist.
          Considered "/usr/lib/mono/4.5-api/Facades/MathNet.Numerics.exe", but it didn't exist.
          For SearchPath "{GAC}".
          Considered "MathNet.Numerics", which was not found in the GAC.
          For SearchPath "{RawFileName}".
          Considered treating "MathNet.Numerics" as a file name, but it didn't exist.
          For SearchPath "/home/bleakcabal/Documents/projects/genesis/build/".
          Considered "/home/bleakcabal/Documents/projects/genesis/build/MathNet.Numerics.winmd", but it didn't exist.
          Considered "/home/bleakcabal/Documents/projects/genesis/build/MathNet.Numerics.dll", but it didn't exist.
          Considered "/home/bleakcabal/Documents/projects/genesis/build/MathNet.Numerics.exe", but it didn't exist.
该文件位于我的项目中的
packages
文件夹中(我使用Ionide fsharp创建了该文件夹,VS代码使用paket和fake),但该文件夹未出现在错误消息中

我收到了与Newtonsoft.Json完全相同的消息

这是我的
paket.dependencies
文件:

source https://www.nuget.org/api/v2

nuget FAKE
nuget FSharp.Core
nuget MathNet.Numerics
nuget Newtonsoft.Json
我的
paket.lock
文件太长,无法发布,但以下是相关部分:

MathNet.Numerics (3.19)
      TaskParallelLibrary (>= 1.0.2856) - framework: net35

Newtonsoft.Json (10.0.2)
      Microsoft.CSharp (>= 4.3) - framework: netstandard10, >= netstandard13
      NETStandard.Library (>= 1.6.1) - framework: netstandard10, >= netstandard13
      System.ComponentModel.TypeConverter (>= 4.3) - framework: netstandard10, >= netstandard13
      System.Runtime.Serialization.Formatters (>= 4.3) - framework: >= netstandard13
      System.Runtime.Serialization.Primitives (>= 4.3) - framework: netstandard10, >= netstandard13
      System.Xml.XmlDocument (>= 4.3) - framework: >= netstandard13
以下是我的多个
.fsproj
文件中的一个摘录,这些文件引用了这些软件包:

...
<Reference Include="MathNet.Numerics" />
<Reference Include="Newtonsoft.Json" />
...
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v3.5'">
  <ItemGroup>
    <Reference Include="MathNet.Numerics">
      <HintPath>..\..\packages\MathNet.Numerics\lib\net35\MathNet.Numerics.dll</HintPath>
      <Private>True</Private>
      <Paket>True</Paket>
    </Reference>
  </ItemGroup>
</When>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And ($(TargetFrameworkVersion) == 'v4.0' Or $(TargetFrameworkVersion) == 'v4.5' Or $(TargetFrameworkVersion) == 'v4.5.1' Or $(TargetFrameworkVersion) == 'v4.5.2' Or $(TargetFrameworkVersion) == 'v4.5.3' Or $(TargetFrameworkVersion) == 'v4.6' Or $(TargetFrameworkVersion) == 'v4.6.1' Or $(TargetFrameworkVersion) == 'v4.6.2' Or $(TargetFrameworkVersion) == 'v4.6.3' Or $(TargetFrameworkVersion) == 'v4.7')">
  <ItemGroup>
    <Reference Include="MathNet.Numerics">
      <HintPath>..\..\packages\MathNet.Numerics\lib\net40\MathNet.Numerics.dll</HintPath>
      <Private>True</Private>
      <Paket>True</Paket>
    </Reference>
  </ItemGroup>
</When>

我尝试使用以下命令,但没有效果:
.paket/paket.exe restore
.paket/paket.exe install
.paket/paket.exe过时
要运行paket,您需要运行

$ mono paket.exe install
如果缺少程序集或引用不可靠仍有问题,请尝试

$ apt-get install mono-dev


有关Mono安装的更多信息,请查看

我最后做了一个
paket.exe更新--重定向
,如@TaylorFraley建议的,它修改了一些文件

然后使用paket ionide插件,我从解决方案中删除了这两个包

然后,我在解决方案中搜索关于这两个包(my.fsproj中包含两个引用)的任何剩余内容,然后手动删除它们

我再次使用paket Ionide插件重新安装了软件包,一切正常


因此,解决办法是删除所有内容,然后再次添加。不知道为什么paket更新不起作用。

谢谢您的帮助。正如我在问题中提到的,我已经尝试过paket.exe安装。我没有尝试重新安装mono包装,所以我尝试了。apt get install没有做任何操作,因为它们已经是最新的,但是我尝试了--REPLAY开关来强制重新安装,但得到了相同的结果。您可以尝试
paket.exe更新--redirects
;此外,在您的fsproj中,这两个包可能都有一个额外的
。老实说,我不确定这是否是一个问题,但你可以试着对
部分之外的两个部分进行注释。啊,除了+1的帮助,还是没有运气。我将尝试使用这些相同的依赖项创建一个新项目,并比较.fsproj和paket文件。
$ apt-get install mono-dev
$ apt-get install mono-complete