.net - 如何使用 .Net 创建 Berkeley 数据库?

标签 .net berkeley-db

我正在使用以下代码创建 Berkeley DB,但我在最后一行收到错误:

The type initializer for 'BerkeleyDB.Internal.libdb_csharpPINVOKE' threw an exception.

代码:

Dim DB As DatabaseEnvironment
Dim Config As DatabaseEnvironmentConfig

Config = New DatabaseEnvironmentConfig
Config.Create = True

DB = DatabaseEnvironment.Open("d:\database.db", Config)

有谁知道我做错了什么吗?

我正在使用 VB Express 2010 和 .Net Framework 4.0

全栈:

System.TypeInitializationException: The type initializer for 'BerkeleyDB.Internal.libdb_csharpPINVOKE' threw an exception. ---> 
System.TypeInitializationException: The type initializer for 'SWIGStringHelper' threw an exception. 
System.DllNotFoundException: Unable to load DLL 'libdb_csharp61': Le module spécifié est introuvable. 
(Exception from HRESULT: 0x8007007E) at BerkeleyDB.Internal.libdb_csharpPINVOKE.SWIGStringHelper.SWIGRegisterStringCallback_libdb_csharp(SWIGStringDelegate stringDelegate)
at BerkeleyDB.Internal.libdb_csharpPINVOKE.SWIGStringHelper..cctor() 
in C:\carol\db-6.1.23\lang\csharp\src\Internal\libdb_csharpPINVOKE.cs:line 29     
--- End of inner exception stack trace ---     
at BerkeleyDB.Internal.libdb_csharpPINVOKE.SWIGStringHelper..ctor()     
at BerkeleyDB.Internal.libdb_csharpPINVOKE..cctor() 
in C:\carol\db-6.1.23\lang\csharp\src\Internal\libdb_csharpPINVOKE.cs:line 33     
--- End of inner exception stack trace ---     
at BerkeleyDB.Internal.libdb_csharpPINVOKE.new_DB_ENV(UInt32 jarg1)     
at BerkeleyDB.Internal.DB_ENV..ctor(UInt32 flags) 
in C:\carol\db-6.1.23\lang\csharp\src\Internal\DB_ENV.cs:line 276     
at BerkeleyDB.DatabaseEnvironment..ctor(UInt32 flags) 
in C:\carol\db-6.1.23\lang\csharp\src\DatabaseEnvironment.cs:line 174     
at BerkeleyDB.DatabaseEnvironment.Open(String home, DatabaseEnvironmentConfig cfg) 
in C:\carol\db-6.1.23\lang\csharp\src\DatabaseEnvironment.cs:line 2705     
at WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) 
in C:\Documents and Settings\Steven\Local Settings\Application Data\Temporary Projects\WindowsApplication1\Form1.vb:line 13"

最佳答案

  1. 确保您的 .net 项目设置为 .NET 4.0
  2. 构建为 x86
  3. libdb_csharp61.dll 在您的/bin/debug 文件夹中

关于.net - 如何使用 .Net 创建 Berkeley 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689049/

相关文章:

c# - 在哪里可以找到 Microsoft.Build.Utilities.v3.5

c# - 如何更新我的 API 以使用 async 关键字而不对所有调用者使用 await

c - Berkeley DB SIGBUS 错误

sqlite - Berkeley DB SQL 与 SQLite 相比有多快?

java - 推荐一个快速且可扩展的持久化 Map - Java

c# - 如何使用 IVsPackageSourceProvider 提供程序

.net - 使用 log4net 的 adonetappender 登录到 redshift

c# - Newtonsoft JSON for .net 忽略 jsonproperty 标签

java - 京都内阁/伯克利 DB : Hash table size limitations

java - 在 BerkeleyDB JE 中手动创建序列