Exception while trying to load a Berkeley DB DLL

1

I have a .NET 3.5 application that has a dependency on a C++ DLL (Berkeley DB- libdb_csharp51d.dll) and I'm able to run it on my Windows 7 machine without a problem, but I've tried on two other machines (Windows Server 2008 and Windows 7) and the app keeps getting the an exception.

The exception is:

System.DllNotFoundException: Unable to load DLL 'libdb_csharp51d': The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail. (Exception from HRESULT:0x800736B1)

The message in Event Viewer:

Activation context generation failed for "C:\Path\To\libdb_csharp51d.DLL". Dependent Assembly Microsoft.VC90.DebugCRT,processorArchitecture="amd64",publicKeyToken="AWUe.k,PRvnbjRtZ",type="win32",version="9.0.21022.8" could not be found. Please use sxstrace.exe for detailed diagnosis.

(note that I've encrypted the public key token)

The folder structure is as such:

C:\Path\To\
+ myapplication.exe
+ some.DLL
+ libdb_csharp51d.DLL
+ someother.DLL

I ran the application on my machine to make sure it works fine, then I copied the folder, as it is, directly on to the server so there is no difference between the contents of the folder between the server and my machine. I did the same thing with the other Win7 machine as well (all of the machines are 64 bit). Initially I thought that the issue would be resolved once I install Berkeley DB, but even after I installed it, I still got the same exception.

Does anybody know what may be causing this issue? Are there any fixes/workarounds?

c#
exception
dll
unmanaged
berkeley-db
asked on Stack Overflow Jun 13, 2011 by Kiril • edited Jun 14, 2011 by Kiril

1 Answer

2

It is looking for a msvcrtd.dll (or one with a version number). You should have it somewhere on the development PC.

answered on Stack Overflow Jun 14, 2011 by leppie

User contributions licensed under CC BY-SA 3.0