使用.Net绑定的ZeroMQ DllNotFoundException

Lea*_*ng1 12 dllnotfoundexception zeromq

我刚刚开始使用ZeroMQ并正在试验一些样本.我正在使用C#语言绑定并遇到了获取DllNotFound异常的问题.

将libzmq.dll复制到Windows/System32之后,我可以在我的开发机器上加载和运行样本,但是当我将其移动到其他服务器时,尽管将libzmq.dll复制到样本运行的文件夹中,我仍然会收到错误.进入Windows/System32.

我已将clzmq.dll放入示例应用程序所在的文件夹中,并且libzmq.dll此外,我将libzmq放入c:/ Windows/System32.我正在运行Windows Server 2003 Service Pack 2.当我检查机器环境变量时,WINDOWS/System32在PATH变量中.我还确定使用Release构建libzmq dll,而不是调试.

有可能我不明白应该如何使用ZeroMQ .Net绑定.我已将clzmq.dll(.Net Binding)添加到我的项目作为参考,我假设clzmq.dll会自动引用Windows PATH变量WINDOWS/System32上的libzmq.

有谁知道我是否对此有误.C#Binding文档(http://www.zeromq.org/bindings:clr)声明"ZeroMQ库文件需要可用于绑定才能工作",但它接缝我尽管无法使其可用将其复制到PATH变量中.

使用ZeroMQ .Net Bindings时是否有人遇到过DLL未找到的异常?

谢谢您的帮助,

小智 8

我在Windows Server 2008上遇到了这个确切的错误.一旦我的代码试图创建一个clrzmq(2.2.3)对象,Windows就试图加载DLL并因错误而失败:

Unable to load DLL 'libzmq': The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

DLL绝对存在.我尝试了各种具有权限的解决方案,所有这些都无法解决问题.下载和安装VS2010 C++可再发行组件解决了我的问题.


lia*_*ang 2

在检查我的系统是否有 Microsoft Visual C++ 2010 Redistributable 后,我仍然遇到同样的问题。我的操作系统是 Windows 7 64 位。我在 Visual Studio 2010 中从 NuGet 获取了 ZeroMQ 库。

PS,我找到了解决我的错误的解决方案。在VS中从NuGet下载ZeroMQ时,实际上有一个警告,我一开始忽略了。它说除了 clrzmq2 的引用之外,还需要手动将 libzmq.dll 复制到项目的输出目录。手动将 libzmq.dll 复制到输出目录后,它现在可以工作了。顺便说一句,我尝试将 libzmq.dll 复制到 C:\Windows\System32 ,如上所述,它也不起作用。

希望能帮助到你。