我正在尝试使用RavenDB在.NET Core中创建嵌入式数据库。尽管RavenDB.Client程序包可以毫无问题地还原,但RavenDB.Database程序包(用于制作嵌入式数据库)却不能正确还原,即使它的唯一依赖关系是RavenDB.Client。我收到一条错误消息,指出RavenDB.Database与.netcoreapp1.0不兼容。这是我的package.json的图片:

c# - .NET Core的RavenDB依赖关系问题-LMLPHP

最佳答案

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文件夹以查看其支持的内容。

由于RavenDB.Client支持netstandard1.3,因此大卫·福勒(David Fowler)通过以下类比对netcoreapp1.0进行了支持:

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;如果要使用此库,请使用.NET 4.5而不是.NET Core。或等待该库移植到.NET Core。

为此,请将frameworks中的project.json更改为相应的项目:

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


注意:您还需要删除Microsoft.NETCore.App依赖项。

关于c# - .NET Core的RavenDB依赖关系问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40434908/

10-11 22:39
查看更多