C# 嵌入式RavenDB出现“找不到事务存储类型”错误

C# 嵌入式RavenDB出现“找不到事务存储类型”错误,c#,nosql,embedding,ravendb,document-database,C#,Nosql,Embedding,Ravendb,Document Database,根据在以下位置找到的代码,我成功地为RavenDB运行了一个简单的测试: 接下来,我尝试以嵌入式方式运行它,但不断出现以下错误: Message: Could not find transactional storage type: Raven.Storage.Esent.TransactionalStorage, Raven.Storage.Esent StackTrace: at Raven.Database.Config.InMemoryRavenConfiguration.Cr

根据在以下位置找到的代码,我成功地为RavenDB运行了一个简单的测试:

接下来,我尝试以嵌入式方式运行它,但不断出现以下错误:

Message: Could not find transactional storage type: Raven.Storage.Esent.TransactionalStorage, Raven.Storage.Esent  
StackTrace:    at Raven.Database.Config.InMemoryRavenConfiguration.CreateTransactionalStorage(Action notifyAboutWork) in c:\Builds\raven\Raven.Database\Config\InMemoryRavenConfiguration.cs:line 272
   at Raven.Database.DocumentDatabase..ctor(InMemoryRavenConfiguration configuration) in c:\Builds\raven\Raven.Database\DocumentDatabase.cs:line 109
   at Raven.Client.Client.EmbeddableDocumentStore.InitializeInternal() in c:\Builds\raven\Raven.Client.Embedded\EmbeddableDocumentStore.cs:line 130
   at Raven.Client.Document.DocumentStore.Initialize() in c:\Builds\raven\Raven.Client.Lightweight\Document\DocumentStore.cs:line 388
   at Tests.RavenEmbedded.RavenDB..ctor() in C:\Users\Pranav\Documents\Projects\Repositories-Clone\Common-clone\Tests\RavenDB.cs:line 114
   at Tests.TestRavenDB.Basics() in C:\Users\Pranav\Documents\Projects\Repositories-Clone\Common-clone\Tests\RavenDB.cs:line 170 
设置:

目标框架是.NETFramework 4

我在我的项目中添加了以下引用:

\RavenDB-Build-309\EmbeddedClient\Raven.Client.Embedded.dll \RavenDB-Build-309\Client\Raven.Client.Lightweight.dll \RavenDB-Build-309\EmbeddedClient\Raven.Storage.Esent.dll \RavenDB-Build-309\EmbeddedClient\Raven.Storage.Managed.dll 代码是:


我已经尝试搜索了几天,也尝试了一些不同的变化。我不知道发生了什么。

多亏了groups.google.com/group/ravendb/topics上的Ayende Rahien

解决方案是将Raven.Storage.Esent引用添加到主项目中。这是VisualStudio和间接引用的问题

谢谢@Derek建议我在那里发帖


-Pranav

感谢groups.google.com/group/ravendb/topics上的Ayende Rahien

解决方案是将Raven.Storage.Esent引用添加到主项目中。这是VisualStudio和间接引用的问题

谢谢@Derek建议我在那里发帖


-Pranav

您需要添加对Raven.Storage.Esent.dll的引用

您需要添加对Raven.Storage.Esent.dll的引用

您在这里发布了吗?没有,但我会在那里发布well@Derek我在288上也遇到了同样的错误,我想要么你仍然只指定DocumentStore,我会看看什么时候我可以使用PC。就在我脑海中的一个遥远的地方,但是你是否有一个配置文件在某处声明选择的引擎应该是存在的?可嵌入的应该是只管理引擎还是我错了?你在这里发帖了吗?没有,但我会在那里发布well@Derek我在288上也遇到了同样的错误,我想要么你仍然只指定DocumentStore,我会看看什么时候我可以使用PC。就在我脑海中的一个遥远的地方,但是你是否有一个配置文件在某处声明选择的引擎应该是存在的?可嵌入的应该是托管引擎还是我错了?Thnx,我不知道为什么第一次没有包括它,因为它已经在项目中被引用了,但是我发布了一个新的版本,现在所有需要的东西都在那里。Thnx,我不知道为什么第一次没有包括它,因为它已经在项目中被引用了,但是我做了一个新的发布,现在所有需要的东西都在那里了。它看起来像是对Raven.Storage.Esent的引用,必须添加到测试项目中,测试一个类,该类在documentstore中更新。我在写我的第一个测试开始玩raven的时候也遇到了同样的问题。有人知道是什么原因造成的吗?是否有一个解决方案,这样就不需要将其添加到其他项目中?似乎必须将对Raven.Storage.Esent的引用添加到测试项目中,以测试一个类,该类将更新documentstore。我在写我的第一个测试开始玩raven的时候也遇到了同样的问题。有人知道是什么原因造成的吗?是否有一个变通方案,这样就不需要将其添加到其他项目中? namespace Tests.RavenEmbedded { using Raven.Client.Client; using Raven.Client.Document; using Raven.Storage.Esent; using Raven.Storage.Managed; using Tests.RavenData; class RavenDB { public RavenDB() { // EmbeddableDocumentStore store = new EmbeddableDocumentStore { DataDirectory = @"C:\Temp\RavenData" }; //Raven.Storage.Esent.TransactionalStorage var store = new EmbeddableDocumentStore { DataDirectory = @"C:\Temp\RavenData" }; store.Initialize(); #region Write Data using (var session = store.OpenSession()) { var product = new Product { Cost = 3.99m, Name = "Milk", }; session.Store(product); session.SaveChanges(); session.Store(new Order { Customer = "customers/ayende", OrderLines = { new OrderLine { ProductId = product.Id, Quantity = 3 }, } }); session.SaveChanges(); } #endregion #region Read Data using (var session = store.OpenSession()) { var order = session.Load("orders/1"); Debug.Print("Customer: {0}", order.Customer); foreach (var orderLine in order.OrderLines) { Debug.Print("Product: {0} x {1}", orderLine.ProductId, orderLine.Quantity); } session.SaveChanges(); } #endregion } } } namespace Tests { public class TestRavenDB { public static void Basics() { try { //var db = new RavenClientServer.RavenDB(); var db = new RavenEmbedded.RavenDB(); } catch (Exception ex) { Debug.Print("Message: {0} ",ex.Message); Debug.Print("StackTrace: {0} ",ex.StackTrace); } } } }