C#无法在子目录

时间:2015-06-15 16:21:47

标签: c# .net dll dllimport unmanaged

我有第三方C#库我的代码引用,我们称之为a.dll,此库依赖于非托管C dll cApi.dll。 C库包含x86x64,我将它们存储在各自的文件夹中并设置Copy always。当我从我的代码中调用a.dll的init方法时,我收到错误消息Unable to load DLL 'cApi.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)。我的代码引用了a.dll,所以调试时我的bin看起来像:

仓/调试/
--- A.DLL       
      --- 86 /
      ------ cApi.dll
      --- 64 /
      ------ cApi.dll

当我检查a.dll中的代码时,它使用DllImport属性来调用cApi.dll。如果我将cApi.dll中的任何一个复制到同一目录a.dll输出到,我将不会收到错误。 DllImport不会搜索bin中的子目录吗?如何解决此问题,是否应该添加构建逻辑以将正确的cApi.dll复制到与a.dll相同的目录,或者是否有办法使其与当前结构一起使用?

编辑我的配置文件中有<probing>元素:<probing privatePath="x86;x64"/>

0 个答案:

没有答案