ZeroMQ has an excellent NuGet package – clrzmq. It works pretty well, except for the fact that it requires the VC++ runtime. If that’s not installed, then you get an error saying MSVCP100.dll wasn’t found. And if you happen to be running in a windows service hosted by TopShelf, you get a cryptic error message saying Access is Denied (not really Topshelf’s fault). Details seem to suggest that the libzmq.dll file could not be found – or something along those lines. This is a common problem when deploying ZeroMQ based applications to fresh servers.

The solution is quite simple:

For 32 bit systems, install the Microsoft Visual C++ 2010 Redistributable Package (x86)
For 64 bit systems, install the Microsoft Visual C++ 2010 Redistributable Package (x64)

There’s another little caveat. If you’re using “Any CPU” as the build output but have “32 bit preferred”, then you will need the x86 bits regardless of whether or not the OS is x86 or x64. If “32 bit preferred” is not selected, then you need the binaries that correspond to your OS.

image

Hope that helps.