为什么RavenDB EmbeddedableDocumentStore依赖于Raven.Database程序集?

为什么RavenDB EmbeddedableDocumentStore依赖于Raven.Database程序集?,ravendb,Ravendb,我试图在单元测试项目中使用Raven.Client.Embedded.embeddedableDocumentStore(Build 960),如下所示: private IDocumentStore CreateDocumentStore() { var store = new EmbeddableDocumentStore { RunInMemory = true, Conventions = new DocumentConve

我试图在单元测试项目中使用
Raven.Client.Embedded.embeddedableDocumentStore
(Build 960),如下所示:

private IDocumentStore CreateDocumentStore()
{
    var store = new EmbeddableDocumentStore
    {
            RunInMemory = true,
            Conventions = new DocumentConvention
            {
                    DefaultQueryingConsistency = ConsistencyOptions.QueryYourWrites,
                    IdentityPartsSeparator = "-"
            }
    };
    store.Initialize();
    IndexCreation.CreateIndexes(typeof (RavenIndexes).Assembly, store);
    return store;
}
我通过NuGet安装了以下RavenDB组件:

  • 嵌入式的
  • RavenDB.客户
上述代码失败,因为它找不到Raven.Database 1.0.0.0程序集。为了解决这个问题,我还通过nuget安装了RavenDB.Database包。这增加了一大堆我不想要的东西,考虑到这个包的功能,这是意料之中的:

如果要扩展RavenDB,请使用此软件包。如果需要,请不要使用此软件包 您只需要使用现有的RavenDB服务器就可以了 只需使用RavenDB.client包中的客户端API

现在,当我尝试使用NuGet卸载RavenDB.Database包时,它告诉我无法:

卸载程序包:无法卸载“RavenDB.Database 1.0.960” 因为“RavenDB.Embedded 1.0.960”依赖于它

那怎么办呢?我是否弄乱了我的NuGet纯度,并手动从我的单元测试项目中删除所有未使用的引用(
RavenDB.scappler
etc),只留下
RavenDB.Database
引用?还是我出了什么差错?当然,
embeddedabledocumentstore
不需要我安装整个RavenDB.Database包


谢谢

Embeddeble取决于数据库,因为当您运行Embeddeble时,您正在应用程序中运行整个数据库服务器引擎,并且数据库包包含该引擎。

好的,这是有意义的。对于那些只想运行内存中数据库(通常用于单元测试)的人来说,可能会有一个精简的NuGet软件包,而不是所有的铃铛和哨子。