Sounds like you are not packaging/picking the zkemkeeper.dll or associated file/info along with your exe.
A quick check would be:
Take the entire bin/debug folder of yours (it would be having your C# exe & all the needed assemblies in it). Paste it in
1. other folder of same system => executable works then you have all the needed files with you locally on system
2. machine and then run the executable. => if it fails, then there must be something that zkemkeeper.dll needs which is available with install of ZKT software. Either it could be associated file or some registry entry that would make it work.
With above, it would be clear that what it would need to create an installer.
For installer, refer online like:
Create Installer File for Windows Application using Visual Studio[
^]
If the bin folder is enough and works as is in another maching, you just need to package them. In case you find that another system needs ZKT softare too, then you need to package that along with your exe in the installer. Beware though, read ZKT software license before packaging it along with your exe and distribute. Though if you figure some registry entry would work out, then you need to make that as a pre-step during install and it should do the trick.
Refer our own CP article:
C# ZKTeco Biometric Device Getting Started[
^] => Looking at it, mostly it seems could be the registration of the assembly needed in order to run the application on another system. Try out!