You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2添加zkemkeeper.dll遇程序集加载异常求助

解决.NET Core 2中调用zkemkeeper.dll的FileNotFoundException问题

我来帮你捋捋这个问题的常见解决思路——毕竟在.NET Core里调用传统COM组件确实容易踩各种坑:

1. 确保正确生成并引用互操作程序集

你遇到的Interop.zkemkeeper是.NET与COM组件交互的中间程序集,.NET Core不会像Framework那样自动生成它,得手动操作:

  • 打开Visual Studio的开发者命令提示符,用tlbimp.exe工具生成互操作集:
    tlbimp zkemkeeper.dll /out:Interop.zkemkeeper.dll
    
  • 把生成的Interop.zkemkeeper.dll直接添加到项目中,右键它→属性,设置复制到输出目录为「始终复制」或「如果较新则复制」。

2. 匹配组件的平台架构

zkemkeeper.dll这类门禁设备SDK大多是32位的,而.NET Core默认的Any CPU模式会导致加载失败:

  • 右键项目→属性→生成→平台目标,选择x86,然后重新编译项目。
  • 注意:如果部署到服务器,服务器也得是32位环境,或者确认该SDK有64位版本(大部分情况没有)。

3. 手动注册COM组件(Windows环境)

Windows系统下,COM组件必须注册才能被.NET识别:

  • 打开管理员命令提示符,执行注册命令:
    regsvr32 "你存放zkemkeeper.dll的完整路径"
    
  • 看到注册成功的提示后,再尝试调用组件方法。

4. 配置.NET Core 2的COM互支持

.NET Core 2对COM互操作的支持不如Framework完善,试试在项目的.csproj文件中添加以下配置:

<PropertyGroup>
  <EnableComHosting>true</EnableComHosting>
</PropertyGroup>

保存后重新构建项目,让框架更好地识别互操作程序集。

5. 检查输出目录的文件完整性

编译完成后,去项目的bin/Debug/netcoreapp2.x目录下确认:

  • Interop.zkemkeeper.dll是否存在
  • zkemkeeper.dll本体是否也被复制到了该目录(部分COM组件需要依赖本体文件才能正常加载)

如果以上步骤都试过还是有问题,可以补充下你在.NET Core 1中复现的具体表现,方便进一步排查。

内容的提问来源于stack exchange,提问作者Pieter van Zyl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:29:04