为什么我的.NET CF应用程序找不到DLL与可执行文件在同一目录中?

时间:2010-11-26 19:38:50

标签: c# .net assemblies .net-1.1 compact-framework

我有一个.NET CF 1.1应用程序已经运行了很多年。有时,我会收到一张帮助台票,上面有以下错误消息(通用):

    Method not found: 
    MethodName
    AssemblyNamespace.Class

DLL就在那里,它与我的其他设备版本相同。什么可以改变,这将使它找不到方法。这个错误是否意味着程序集已加载,或者在它发生之前是否已破坏?

我是如何在Visual Studio(2003,顺便说一句)中添加引用的?我将Copy Local设置为true,因此我假设它需要与我的可执行文件位于同一目录中。

您可以提供的任何帮助表示赞赏。感谢。

编辑:我相信这个DLL也在设备的windows目录中,可能是不同的版本。它包含许多硬件特定功能(即背光,键盘状态等)

3 个答案:

答案 0 :(得分:1)

不管你如何在Visual Studio 2003中添加引用都没关系。(100%肯定)
现在不太确定:我认为其他人在手机的GAC中拥有相同的程序集。因此,GAC程序集被调用而不是您部署的程序集,并且该程序集的版本缺少所请求的功能。

答案 1 :(得分:0)

取决于您如何在代码中引用该文件。您可能依赖于当前的工作目录,这取决于应用程序的启动方式或之后的工作方式,可能与您的预期不同。

答案 2 :(得分:0)

有时.NetCf会在设备内存不足时抛出此异常,而不是预期的“Out of Memory”异常。当使用P / Invoke加载本机dll而不是加载纯netcf dll时,我更经常观察到这种行为。

相关问题