【发布时间】:2016-02-24 20:10:24
【问题描述】:
当我从 Visual Studio 运行任何项目时,它运行良好(在 Motorola MC 3190 - WinCE 6.0 上)
但是,当我在设备上安装并运行该应用程序时,我收到此错误:
未找到兼容的 FusionInterface dll,预期版本为 4.1.0.1 或更高版本,格式为 4.x.x.x
可能是什么问题?
【问题讨论】:
标签: c# windows-ce
当我从 Visual Studio 运行任何项目时,它运行良好(在 Motorola MC 3190 - WinCE 6.0 上)
但是,当我在设备上安装并运行该应用程序时,我收到此错误:
未找到兼容的 FusionInterface dll,预期版本为 4.1.0.1 或更高版本,格式为 4.x.x.x
可能是什么问题?
【问题讨论】:
标签: c# windows-ce
在我的例子中,将 Symbol.Fusion.dll 和 FusionInterface.dll 文件部署在与我的可执行文件相同的目录中已经解决了这个错误。
【讨论】:
您必须安装symbol.all.arm.cab 文件。如果您使用的是 Windows CE,那么您需要 armv4 版本。如果您使用的是 Windows Mobile,则需要 armv4i 版本。
另外,请确保您的应用程序目录中没有 DLL 的本地副本;这可能会导致版本不匹配。
【讨论】:
添加对Symbol.ResourceCoordination 的引用对我有用。根据 Motorola EMDK v2.9 中包含的 CS_FusionSample1 代码示例,相关符号引用为 Symbol、Symbol.Fusion 和 Symbol.ResourceCoordination。
注意,我正在为 Windows CE 6.0 下的 Motorola 9190 手持设备构建。
【讨论】:
Fusion Interface DLL 版本兼容性
EMDK for .NET 通过 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.x.x.x
找到更新且不兼容的 FusionInterface dll 3.1.0.5。预期版本为 2.0.0.3 或更高版本,格式为 2.x.x.x
解决方案
DLL 版本不兼容是因为两个文件(Fusion Interface DLL 和 Fusion Assembly DLL)取自不同的 EMDK 包。要解决此问题,
方法一:
使用设备控制面板中的“删除程序”删除“符号托管类库”。
检查设备的“\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)。
运行应用程序。
方法二:
将相应的 DLL 复制到设备的 \Windows 目录中。
运行应用程序
注意:此 DLL 在 EMDK for .NET 包中不单独提供。
【讨论】: