1

我正在尝试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.嵌入式
  • RavenDB.Client

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

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

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

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

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

谢谢

4

1 回答 1

3

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

于 2012-06-21T14:15:31.323 回答