我有一个.NET CF 1.1应用程序已经运行了很多年。有时,我会收到一张帮助台票,上面有以下错误消息(通用):
Method not found: MethodName AssemblyNamespace.Class
DLL就在那里,它与我的其他设备版本相同。什么可以改变,这将使它找不到方法。这个错误是否意味着程序集已加载,或者在它发生之前是否已破坏?
我是如何在Visual Studio(2003,顺便说一句)中添加引用的?我将Copy Local设置为true,因此我假设它需要与我的可执行文件位于同一目录中。
您可以提供的任何帮助表示赞赏。感谢。
编辑:我相信这个DLL也在设备的windows目录中,可能是不同的版本。它包含许多硬件特定功能(即背光,键盘状态等)
答案 0 :(得分:1)
不管你如何在Visual Studio 2003中添加引用都没关系。(100%肯定)
现在不太确定:我认为其他人在手机的GAC中拥有相同的程序集。因此,GAC程序集被调用而不是您部署的程序集,并且该程序集的版本缺少所请求的功能。
答案 1 :(得分:0)
取决于您如何在代码中引用该文件。您可能依赖于当前的工作目录,这取决于应用程序的启动方式或之后的工作方式,可能与您的预期不同。
答案 2 :(得分:0)
有时.NetCf会在设备内存不足时抛出此异常,而不是预期的“Out of Memory”异常。当使用P / Invoke加载本机dll而不是加载纯netcf dll时,我更经常观察到这种行为。