2016-11-05 13 views
1

RavenDBを使用して.NETコアに組み込みデータベースを作成しようとしています。 RavenDB.Clientパッケージは何の問題もなく復元されますが、RavenDB.Databaseパッケージ(組み込みデータベースの作成に必要)はRavenDB.Clientだけの依存関係であっても正しく復元されません。 RavenDB.Databaseが.netcoreapp1.0と互換性がないというエラーメッセージが表示されます。ここに私のpackage.jsonの画像です:.NETコアでのRavenDBの依存関係の問題

enter image description here

答えて

2

Package RavenDB.Database 3.5.0 supports: net45 (.NETFramework,Version=v4.5)。したがって、netcoreapp1.0ではサポートされていません。また、https://www.nuget.org/api/v2/package/RavenDB.Database/3.5.0パッケージをダウンロードし、libフォルダを抽出して調べて、サポートしているものを確認することもできます。 ;

interface INetCoreApp10 : INetStandard15 //What we care about in this case 
{ 

} 

interface INetStandard10 
{ 
    void Primitives(); 
    void Reflection(); 
    void Tasks(); 
    void Collections(); 
    void Linq(); 
} 

interface INetStandard11 : INetStandard10 
{ 
    void ConcurrentCollections(); 
    void InteropServices(); 
} 

interface INetStandard12 : INetStandard11 
{ 
    void ThreadingTimer(); 
} 

interface INetStandard13 : INetStandard12 //NetStandard version this library supports 
{ 
    void FileSystem(); 
    void Console(); 
    void ThreadPool(); 
    void Process(); 
    void Sockets(); 

    void AsyncLocal(); 
} 

interface INetStandard14 : INetStandard13 
{ 
    void IsolatedStorage(); 
} 

interface INetStandard15 : INetStandard14 
{ 
    void AssemblyLoadContext(); 
} 

https://gist.github.com/davidfowl/8939f305567e1755412d6dc0b8baf1b7#file-_platform-cs-L127

TLDR:RavenDB.Clientはデビッド・ファウラーによって、次のアナロジーを経由して、それがnetcoreapp1.0でサポートされていnetstandard1.3をサポートしているため

このライブラリを使用する場合は、.NET Coreではなく.NET 4.5を使用します。または、このライブラリが.NETコアに移植されるまで待ちます。

、そうするそれぞれの項目にごproject.jsonであなたのframeworksを変更するには:

"frameworks": { 
    "net45": { 
    } 
} 

注:あなたはまた、同様にMicrosoft.NETCore.App依存関係を削除する必要があります。

+0

ありがとうございました!これが問題を解決することは分かっていましたが、ライブラリに依存しているときにライブラリが移植されていないことは私には奇妙に思えます。丁寧な対応に感謝します。 – Bryan

+0

@ブライアン:なぜそれは奇妙でしょうか? 'RavenDB.Client'は' RavenDB.Database'に必要なAPIのサブセットしか持っていないので、もちろんそれを消費することができます。しかし、 'RavenDB.Database'が現在フル.NET Framework上でのみ利用可能なAPIに依存している可能性がある場合、大きなオーバーヘッドで移植することはできません。 – Tseng