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

时间:2012-06-21 12:23:29

标签: ravendb

我正在尝试在单元测试项目中使用Raven.Client.Embedded.EmbeddableDocumentStore(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.Embedded
  • RavenDB.Client

上面的代码失败,因为它无法找到Raven.Database 1.0.0.0程序集。为了解决这个问题,我还通过nuget安装了RavenDB.Database包。这增加了我不想要的一大堆东西,考虑到这个包的nuget description,这是预期的:

  

如果要扩展RavenDB,请使用此包。如果,请不要使用此包   您只想使用现有的RavenDB服务器   只需使用RavenDB.Client包中的客户端API。

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

  

Uninstall-Package:无法卸载'RavenDB.Database 1.0.960'   因为'RavenDB.Embedded 1.0.960'取决于它。

那该怎么办?我是否弄乱了我的NuGet纯度,并从我的单元测试项目中手动删除所有未使用的引用(RavenDB.Smuggler等),只留下RavenDB.Database引用?或者我在某个地方出错?当然EmbeddableDocumentStore不需要我安装整个RavenDB.Database包。

由于

1 个答案:

答案 0 :(得分:3)

Embeddable依赖于数据库,因为当您运行Embeddable时,您在应用程序中运行整个数据库服务器引擎,而数据库包中包含该引擎。