使用Symbol/Motorola Fusion dll时出错 - WinCE 6.0
当我从 Visual Studio 运行任何项目时,它运行良好(在 Motorola MC 3190 - WinCE 6.0 上)
但是,当我在设备上安装并运行该应用程序时,出现以下错误:
未找到兼容的 FusionInterface dll,预期版本为 4.1.0.1 或更高版本,格式为 4.xxx
可能是什么问题?
When I run any project from Visual Studio, it works excellent (on Motorola MC 3190 - WinCE 6.0)
However, when I install and run the application on the device, I get this error:
No compatible FusionInterface dll found, Expected version is 4.1.0.1 or higher version having the format 4.x.x.x
What could be the problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
就我而言,将 Symbol.Fusion.dll 和 FusionInterface.dll 文件部署在与我的可执行文件相同的目录中已经解决了此错误。
In my case, deploying Symbol.Fusion.dll and FusionInterface.dll files in the same directory than my executable has resolved this error.
您必须安装
symbol.all.arm.cab
文件。如果您使用的是 Windows CE,那么您需要 armv4 版本。如果您使用的是 Windows Mobile,则需要 armv4i 版本。另外,请确保应用程序目录中没有 DLL 的本地副本;这可能会导致版本不匹配。
You must install the
symbol.all.arm.cab
file. If you are using Windows CE then you need the armv4 version. If you are using Windows Mobile, then you need the armv4i version.Also, make sure there is no local copy of the DLLs in your application's directory; this could be possibly causing a version mismatch.
添加对
Symbol.ResourceCoordination
的引用对我有用。根据 Motorola EMDK v2.9 附带的 CS_FusionSample1 代码示例,相关符号引用为Symbol
、Symbol.Fusion
和Symbol.ResourceCoordination
。请注意,我正在 Windows CE 6.0 下为 Motorola 9190 手持设备构建。
Adding a reference to
Symbol.ResourceCoordination
worked for me. Per the CS_FusionSample1 code example included with the Motorola EMDK v2.9, the relevant Symbol references areSymbol
,Symbol.Fusion
, andSymbol.ResourceCoordination
.Note, I'm building for a Motorola 9190 handheld under Windows CE 6.0.
Fusion 接口 DLL 版本兼容性
用于 .NET 的 EMDK 通过 Fusion 接口 DLL 访问 Fusion Public API,如概述部分所述。可以有不同版本的 Fusion Public API,并且可以有多个版本的 Fusion Interface DLL。
版本不兼容问题
如果此 DLL 与 EMDK 不兼容,则在尝试访问 Fusion 时,将在异常中提供适当的有意义的错误消息。创建 Config 和 WLAN 对象时会发生这种情况。
可能的消息
发现较旧且不兼容的 FusionInterface dll 1.0.0.1。预期版本为 2.0.0.3 或更高版本,格式为 2.xxx
发现较新且不兼容的 FusionInterface dll 3.1.0.5。预期版本为 2.0.0.3 或更高版本,格式为 2.xxx
解决方案
由于两个文件(Fusion Interface DLL 和 Fusion Assembly DLL)取自不同的 EMDK 软件包,因此出现 DLL 版本不兼容的情况。要解决此问题,
方法 1:
使用设备控制面板中的“删除程序”删除“符号托管类库”。
检查设备的“\Windows”文件夹中是否存在“FusionInterface.dll”,如果存在,请将其删除。
从 EMDK 安装位置获取“symbol.all.arm.cab”,复制到设备并运行安装。
典型位置是“\Program Files\Enterprise Mobility Developer Kit for .NET\v2.x\SDK\Smart Devices”的相应子目录(wce400\armv4 或 wce500\armv4i)。
运行应用程序。
方法2:
将相应的DLL复制到设备的\Windows目录中。
运行应用程序
注意:此 DLL 在 EMDK for .NET 包中不单独提供。
Fusion Interface DLL Version Compatibility
EMDK for .NET access Fusion Public API via Fusion interface DLL as mentioned in the Overview section. There can be different versions of Fusion Public API and in return many versions of Fusion Interface DLLs.
Version Incompatibility Issue
If this DLL is incompatible with EMDK, an appropriate meaningful error message will be provided in the exception when trying to access Fusion. This occurs when creating Config and WLAN objects.
Possible Messages
Older and incompatible FusionInterface dll 1.0.0.1 found. Expected version is 2.0.0.3 or higher version having the format 2.x.x.x
Newer and incompatible FusionInterface dll 3.1.0.5 found. Expected version is 2.0.0.3 or higher version having the format 2.x.x.x
Solution
The DLL version incompatibility arises because of the two files (Fusion Interface DLL and the Fusion Assembly DLL) taken from different EMDK packages. To fix the issue,
Method 1:
Remove "Symbol Managed Class Libraries" using "Remove Programs" in the control panel of the device.
Check "\Windows" folder of the device for any existence of "FusionInterface.dll" and if so, delete it.
Take the "symbol.all.arm.cab" from EMDK installed location, copy to the device and run installation.
The typical location is the appropriate sub directory (wce400\armv4 or wce500\armv4i) of "\Program Files\Enterprise Mobility Developer Kit for .NET\v2.x\SDK\Smart Devices".
Run the application.
Method2:
Copy the appropriate DLL to the \Windows directory of the device.
Run the application
Note: This DLL is not separately available in the EMDK for .NET package.