【发布时间】:2011-06-13 16:28:59
【问题描述】:
我有一个依赖于 C++ DLL (Berkeley DB-libdb_csharp51d.dll) 的 .NET 3.5 应用程序,我可以在我的 Windows 7 机器上毫无问题地运行它,但我尝试了两个其他机器(Windows Server 2008 和 Windows 7)并且应用程序不断收到异常。
例外是:
System.DllNotFoundException:无法加载 DLL“libdb_csharp51d”:应用程序无法启动,因为它的并排配置不正确。请查看应用程序事件日志或使用命令行 sxstrace.exe 工具了解更多详细信息。 (HRESULT 例外:0x800736B1)
事件查看器中的消息:
“C:\Path\To\libdb_csharp51d.DLL”的激活上下文生成失败。相关程序集 Microsoft.VC90.DebugCRT,processorArchitecture="amd64",publicKeyToken="AWUe.k,PRvnbjRtZ",type="win32",version="9.0.21022.8" 找不到。详细诊断请使用sxstrace.exe。
(请注意,我已经加密了公钥令牌)
文件夹结构如下:
C:\Path\To\
+ myapplication.exe
+ 一些.DLL
+ libdb_csharp51d.DLL
+ someother.DLL
我在我的机器上运行该应用程序以确保它工作正常,然后我将文件夹原样直接复制到服务器上,因此服务器和我的机器之间的文件夹内容没有区别。我对另一台 Win7 机器也做了同样的事情(所有机器都是 64 位的)。最初我以为安装 Berkeley DB 后问题会得到解决,但即使安装了它,我仍然遇到同样的异常。
有人知道是什么导致了这个问题吗?是否有任何修复/解决方法?
【问题讨论】:
标签: c# exception dll unmanaged berkeley-db