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

编译C#脚本时遇CS0009错误:zkemkeeper.dll元数据无效

搞定CS0009:zkemkeeper.dll元数据无效的问题

嘿,我一眼就看出问题出在哪了——你在Linux环境下(从路径/home/Lab/Bureau/Csharp/能看出来)直接引用了Windows专属的zkemkeeper.dll,这玩意儿是个Windows平台的COM组件库,根本不是.NET标准程序集,Linux下的Roslyn编译器自然读不懂它的元数据,直接给你抛CS0009错误太正常了。

给你几个针对性的解决方向:

  • 先明确目标平台:zkemkeeper是中控智慧考勤设备的Windows驱动库,本身就不支持Linux。如果你本来就应该在Windows下开发,那别在Linux上折腾了,换Windows环境再处理。
  • Windows环境下的正确引用姿势:就算在Windows下,也不能直接引用原DLL,得用.NET的类型库导入工具把它转成.NET能识别的互操作程序集:
    1. 打开Visual Studio的开发者命令提示符(或者装了.NET SDK的话直接用普通命令行)
    2. 运行这个命令:tlbimp zkemkeeper.dll /out:Zkemkeeper.Interop.dll
    3. 之后在你的C#项目里引用生成的Zkemkeeper.Interop.dll,别再碰原DLL了
  • 非要在Linux下开发?试试这些:如果必须在Linux对接设备,先去中控智慧官网看看有没有Linux版的SDK(一般是C语言的库),然后用C#的P/Invoke机制去调用这些Linux原生库,别再跟Windows的DLL死磕了。

另外那个编译警告估计也是因为这个无效引用导致的,等把DLL的问题解决了,警告应该会自动消失。

内容的提问来源于stack exchange,提问作者Borealis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:23:47