2

在 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 )。这没有帮助。错误依然存在。

4

1 回答 1

2

此问题的解决方案是将丢失的 dll 复制到目录:{Visual_project_directory}\bin\Debug。文件不能隐藏在某些目录中,它们必须直接复制到该目录中。可以使用 dumpbin(它与 Visual Studio 一起安装,在其目录之一中)或 Dependency Walker 找到丢失的 dll。

于 2016-08-30T11:07:59.610 回答