使用.Net绑定的ZeroMQ DllNotFoundException

使用.Net绑定的ZeroMQ DllNotFoundException,zeromq,dllnotfoundexception,Zeromq,Dllnotfoundexception,我刚刚开始使用ZeroMQ,正在使用一些示例进行实验。我正在使用C语言绑定,遇到了获取DllNotFound异常的问题 在将libzmq.dll复制到Windows/System32之后,我可以在我的开发机器上加载和运行示例,但是当我将内容移动到其他服务器时,尽管将libzmq.dll复制到示例运行的文件夹和Windows/System32中,我还是会收到错误 我已将clzmq.dll放入示例应用程序所在的文件夹中,还将libzmq.dll放入c:/Windows/System32。我正在运行W

我刚刚开始使用ZeroMQ,正在使用一些示例进行实验。我正在使用C语言绑定,遇到了获取DllNotFound异常的问题

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

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

我可能不明白ZeroMQ.Net绑定应该如何使用。我已经将.Net绑定添加到我的项目中作为引用,并且我假设clzmq.dll将自动引用Windows路径变量Windows/System32上的libzmq

有人知道我在这件事上是否错了吗。C绑定文档指出,需要使ZeroMQ库文件可用,绑定才能工作,但尽管将其复制到PATH变量中,我仍未能使其可用

是否有人在使用ZeroMQ.Net绑定时遇到DLL未找到异常


谢谢你的帮助,

< p>我在检查我的系统后仍然有同样的问题,微软Visual C++ 2010可以重新分配。我的操作系统是64位Windows 7。我在VisualStudio2010中从NuGet获得了ZeroMQ库

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


希望有帮助。

我在Windows Server 2008上遇到了这个错误。当我的代码尝试创建clrzmq 2.2.3对象时,Windows尝试加载DLL,但失败,错误为:

Unable to load DLL 'libzmq': The specified module could not be found.

DLL绝对存在。我尝试了各种具有权限的解决方案,但都未能解决问题。下载和安装VS2010 C++可重分发解决了我的问题。

< P>如果你使用NuGeZrOMQ包,你会收到错误:

Unable to load DLL 'libzmq'
转到解决方案资源管理器,查看NuGet软件包是否为您添加了amd64和i386文件夹。展开这些文件夹,选择其中的每个文件,然后转到“属性”窗口,选择“复制到输出目录”(如果较新)

这似乎是解决该问题的最优雅的解决方案,并且自动适用于这两种体系结构。Windows将根据体系结构搜索当前路径+i386/amd64。

我遇到了这个问题 无法加载DLL“libzmq” 这里的问题是i386文件夹的位置。 我解决了在项目根目录中以32位/移动i386文件夹的问题。
与上面Warren的解决方案类似。

我想如果有人遇到这个问题,我会发布解决方案。libzmq.dll与MSVCP100.dll有依赖关系,而我试图运行应用程序的计算机上没有该依赖关系。我是通过从www.dependencywalker.com下载并运行dependencywalker,然后简单地运行它来解决这个问题的。它立即显示了丢失的DLL。然后我安装了微软Visual C++ 2010可重分发包来修复LIZZMQ所需的丢失线程DLL。我希望这能为其他人节省一些时间。学习1,感谢您分享您的解决方案。我今天遇到了同样的问题,这让我发疯,直到我找到你的SO帖子。我确实发现,如果用VS 2008构建LIZMQ,那么VS2010 C++依赖的依赖性就会消失。然后它就依赖于MSVCR90.dll,我相信它已经预装在大多数windows版本上了。再次感谢。您应该将此作为答案发布,并选择它作为问题的解决方案。这样人们就可以更容易地找到它。尽管我使用的是x64版本的windows,但我需要安装x86版本的可再发行版本。现在有道理了,但我花了一个小时才意识到这一点。这解决了我的问题。这也是一个非常优雅的解决方案