我有一个依赖于C ++ DLL的.NET 3.5应用程序(Berkeley DB- libdb_csharp51d.dll),我可以在我的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:\路径\至\
+ myapplication.exe
+ some.DLL
+ libdb_csharp51d.DLL
+ someother.DLL
我在我的机器上运行应用程序以确保它正常工作,然后我将文件夹直接复制到服务器上,因此服务器和我的机器之间的文件夹内容没有区别。我对其他Win7机器做了同样的事情(所有的机器都是64位)。最初我认为一旦我安装Berkeley DB就会解决问题,但即使我安装它之后,我仍然会遇到同样的例外。
有人知道可能导致此问题的原因吗?是否有任何修复/解决方法?
答案 0 :(得分:2)
正在寻找msvcrtd.dll
(或具有版本号的人)。你应该把它放在开发PC上的某个地方。