コンパイルに正しく使用されていた既存のF#/ Mono/paket/fakeプロジェクトがあります。モノを更新した後にF#buildが2つのパッケージを見つけられない
私はapt-getを使ってmonoを更新しました。私のプロジェクトはコンパイルされません。
MathNet.NumericsとNewtonsoft.Jsonの2つの参照パッケージが見つかりません。ここで
は、プロジェクトをビルドするとき、私はなってんだよ:
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
フォルダに存在(私はpaketと偽物を使用して、VSのコードでIonide-fsharpを使用して作成された)が、このフォルダがエラーメッセージに表示されません。
Newtonsoft.Jsonと全く同じメッセージが表示されています。
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
のいずれかのファイルからの抜粋です。ここ
は私paket.dependencies
ファイルですこれらのパッケージを参照する:
...
<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>
私はmono --version
をすれば、私は、次を得る:
Mono JIT compiler version 5.0.1.1 (2017-02/5077205 Thu May 25 09:16:53 UTC 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
私は、次のコマンドを使用してみましたが、無駄に:.paket/paket.exe restore
、.paket/paket.exe install
、.paket/paket.exe outdated
。あなたがまだ不足しているアセンブリまたはグラグラの参照に問題がある場合は
ありがとうございました。私が私の質問で言及したように、私はすでにpaket.exeをインストールしようとしていました。私はモノパカクを再インストールしようとしなかったので、私はそうしました。 apt-get installはすでに最新であったので何もしませんでしたが、再インストールを強制するために--reinstallスイッチを試しましたが、同じ結果が得られました。 – Gilles
'paket.exe update --redirects'を試すことができます。また、fsprojの両方のパッケージに対して、追加の ''があるようです。正直なところそれが問題なのかどうかは分かりませんが、 ''セクションにない2つのコメントを書き留めてみることができます。 –
ああ、まだ幸運ではなく、助けを+1。これらの依存関係を持つ新しいプロジェクトを作成し、.fsprojファイルとpaketファイルを比較しようとします。 – Gilles