在Windows Mobile中加载动态DLL失败并出现IOException

时间:2009-02-20 16:49:28

标签: c# windows-mobile

我是Windows Mobile开发的新手,遇到了DLL问题。

我正在使用Assembly.LoadFrom()在我的掌上电脑上加载DLL,它失败并显示以下内容: System.IO.IOException: 找不到文件或程序集名称“MyCustom.dll”或其中一个依赖项。

DLL确实存在,我在此之前正在做一个File.Exists()。 这是我用来获取此错误的代码: 程序集asb = Assembly.LoadFrom(@“MyCustom.dll”);

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

稍微详细说明这种失败的其他可能原因。

如果您查看LoadLibrary文档,请说明以下内容:

  

除非模块的完整路径是   指定,Windows Embedded CE   在以下路径中搜索   模块:

. The absolute path specified by the lpLibFileName parameter.
. The .exe launch directory.
. The Windows directory.
. ROM DLL files.
. An OEM-specified search path.
     

以下注册表子项   指定要使用的搜索路径   LoadLibrary和CreateProcess:复制   代码

 HKEY_LOCAL_MACHINE\Loader   
 SystemPath=multi_sz:\\path1\\
                        \\path2\\
  

仅在路径中搜索路径   正在寻找的文件不是   明确指定。

这样可以帮助理解为什么它可能无法找到dll。

如果原因无法找到DLL,那么这里有link一篇关于此问题出现的其他常见原因的文章:

  

可能的原因是:

     
      
  1. dll不是为Windows CE构建的     从Big Windows(NT,XP,Vista)获取dll时会发生这种情况   试图在Windows CE上使用它   设备
  2.   
  3. dll不是为处理器系列构建的     当采用为不同的DLL构建的DLL时会发生这种情况   处理器比目标处理器
  4.   
  5. dll需要加载的另一个dll不可用     当您加载的DLL然后加载另一个DLL时会发生这种情况   那个DLL时出现故障   尝试加载另一个失败的DLL。
  6.   
  7. 如果所需的功能不在dll中。     如果系统上的dll与该系统上的dll不同,则会发生这种情况   那个lib正在构建的那个   你链接到了创建。它是   有时是使用错误的症状   适合您目标的SDK。
  8.   

我发现我遇到的最常见问题是它所依赖的另一个DLL不可用或者其他DLL中的函数不可用。

答案 1 :(得分:0)

您是否为此文件提供了正确的路径?

Here是方法

的参考