我正在使用以下代码创建 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"
最佳答案
- 确保您的 .net 项目设置为 .NET 4.0
- 构建为 x86
- libdb_csharp61.dll 在您的/bin/debug 文件夹中
关于.net - 如何使用 .Net 创建 Berkeley 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689049/