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.Embedded
  • RavenDB.クライアント

Raven.Database 1.0.0.0 アセンブリが見つからないため、上記のコードは失敗します。これを修正するために、nuget を介して RavenDB.Database パッケージもインストールしました。これにより、私が望まないもののスタック全体が追加されました。これは、このパッケージのナゲットの説明を考えると予想されることです。

RavenDB を拡張する場合は、このパッケージを使用します。RavenDB.Client パッケージにあるクライアント API を使用するために、既存の RavenDB サーバーを使用するだけの場合は、このパッケージを使用しないでください。

NuGet を使用して RavenDB.Database パッケージをアンインストールしようとすると、次のことができないと表示されます。

Uninstall-Package : 「RavenDB.Embedded 1.0.960」が依存しているため、「RavenDB.Database 1.0.960」をアンインストールできません。

じゃあ何をすればいいの?NuGet の純度を台無しにして、未使用の参照 (RavenDB.Smugglerなど) をすべて単体テスト プロジェクトから手動で削除し、RavenDB.Database参照のみを残しますか? それとも私はどこかで道に迷ったのでしょうか?もちろん、 RavenDB.DatabaseEmbeddableDocumentStoreパッケージ全体をインストールする必要はありません。

ありがとう

4

1 に答える 1

3

Embeddable を実行しているときは、アプリ内でデータベース サーバー エンジン全体を実行しており、データベース パッケージにはそのエンジンが含まれているため、Embeddable は Database に依存します。

于 2012-06-21T14:15:31.323 に答える