DllNotFoundException PInvoke问题

时间:2016-08-30 09:40:31

标签: c# dll dllnotfoundexception teigha

在Visual Studio 2013中测试执行期间(C#代码)我有这样的错误:

System.TypeInitializationException:System.TypeInitializationException:'Teigha.Core.GlobalsPINVOKE'的类型初始值设定项引发了异常。 ---> System.TypeInitializationException:'SWIGExceptionHelper'的类型初始值设定项引发了异常。 ---> System.DllNotFoundException:无法加载DLL“TD_SwigCore_4.00_10.dll”:找不到指定的模块。 (来自HRESULT的异常:0x8007007E)。中止测试执行。

我的朋友在另一台计算机上使用相同的代码分支。他没有这样的问题。在构建期间,所有dll都被复制到TestResults \ Deploy目录(也是TD_SwigCore_4.00_10.dll)。

我用过

dependbin /DEPENDENTS TD_SwigCore_4.00_10.dll

检查此dll的dll依赖项: KERNEL32.dll,USER32.dll,ole32.dll,TD_Ge_4.00_10.dll,TD_DbRoot_4.00_10.dll,TD_Gi_4.00_10.dll,TD_Gs_4.00_10.dll,TD_SpatialIndex_4.00_10.dll,TD_Br_4.00_10.dll,TD_Db_4。 00_10.dll,TD_Root_4.00_10.dll,TD_Alloc_4.00_10.dll,MSVCP100.dll,MSVCR100.dll。 我将所有这些dll复制到system32文件夹,以便加载所有dll(https://msdn.microsoft.com/en-us/library/7d83bc18(v=vs.120).aspx)。这没有用。错误仍然存​​在。

1 个答案:

答案 0 :(得分:0)

此问题的解决方法是将缺少的dll复制到目录: {} Visual_project_directory \ BIN \调试。文件无法隐藏在某些目录中,必须直接复制到此目录中。 可以通过使用dumpbin(它与Visual Studio在其中一个目录中安装)或Dependency Walker来找到缺少的dll。