需要获取基恩士扫码枪的扫描数据,并实现与access数据库中的数据进行比对。
一. 引用
下到了的SDK,还选择了Anycpu.
引用中添加了这个dll文件
Communication.dll
Keyence.AutoID.SDK.dll
VncClientControlCommon.dll
using Keyence.AutoID.SDK;
二.遇到的错误
1.错误一:.net framework版本
结果一开始就报一大堆错:
未能找到类型或命名空间名“Keyence”(是否缺少 using 指令或程序集引用?)
未能找到类型或命名空间名“ReaderAccessor”(是否缺少 using 指令或程序集引用?)
未能找到类型或命名空间名“ReaderSearcher”(是否缺少 using 指令或程序集引用?)
未能找到类型或命名空间名“NicSearchResult”(是否缺少 using 指令或程序集引用?)
未能找到类型或命名空间名“ReaderSearchResult”(是否缺少 using 指令或程序集引用?)
原因是自己使用了.net framework 4.5 ,将程序修改成.net framework4.6.1
2.错误二:x64 or x86
System.BadImageFormatException:“未能加载文件或程序集“Communication, Version=6.49.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。”
生成里面原来是默认的anycpu,改成x64不行,改成x86, ok
3.读取的结果需要写到access数据库,结果错误
System.InvalidOperationException:“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。”
原因是原先安装的Microsoft Access Database Engine 2016 Redistributable X64,现在程序修改成了X86,只能卸载后重新安装一个X86版本