C#项目集成ZKTeco_PULLSDK_Wrapper遇CS0246等错误求助
解决ZKTeco_PULLSDK_Wrapper配置及CS0246错误的步骤
一、获取SDK所需文件
先从项目仓库中提取核心程序集i04PullSDK.dll,同时别忘了ZKTeco官方配套的依赖动态库(比如zkemkeeper.dll这类文件,是SDK运行必需的)。
二、给项目添加程序集引用
- 打开Visual Studio中的项目,右键点击项目名称 → 选择添加 → 引用
- 在弹出的窗口里点击浏览,找到你下载好的
i04PullSDK.dll,选中后点击确定 - 如果你用的是.NET Core/.NET 5+项目,还需要把
i04PullSDK.dll添加到项目文件列表中:右键项目 → 添加 → 现有项,选中dll后,在文件属性里把复制到输出目录设为如果较新则复制
三、补齐依赖文件
把ZKTeco官方的动态库(比如zkemkeeper.dll)放到项目的输出目录下(比如bin/Debug/net6.0文件夹),不然运行时会出现找不到依赖的错误。
四、代码修正与检查
- 先确认项目目标框架和SDK支持的框架一致(比如SDK基于.NET Framework 4.6,你的项目就不能用.NET Core 3.1,必须匹配)
- 修正代码中的参数问题,原代码里
Connect方法的端口号传的是字符串,而SDK的该参数一般是int类型,调整后代码如下:
using i04PullSDK; AccessPanel ACDevice = new AccessPanel(); // 连接设备,端口号改为数值类型 if (!ACDevice.Connect("192.168.1.201", 4370, "1234", 5000)) { // 可以加个错误提示,比如Console.WriteLine("连接设备失败"); return; } // 读取用户 List<User> users = ACDevice.ReadUsers(); if (users == null) { // Console.WriteLine("读取用户列表失败"); return; } // 打开1号门5秒 if (!ACDevice.OpenDoor(1, 5)) { // Console.WriteLine("开门操作失败"); return; }
五、额外排查点
- 如果添加引用后仍报错,右键项目里的
i04PullSDK.dll引用,查看属性,确认复制本地设为True - ZKTeco的SDK大多是32位,需要把项目平台目标设为x86:右键项目 → 属性 → 生成 → 平台目标选择x86
内容的提问来源于stack exchange,提问作者Pipe
相关产品推荐
相关产品推荐

