私はZeroMQの使用を開始しており、いくつかのサンプルを試しています。私はC#言語バインディングを使用しており、DllNotFound例外を取得する問題に遭遇しました。ZeroMQ DllNotFoundException .Netバインディングを使用
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変数にあります。私はまた、リリースではなく、デバッグを使用してlibzmq dllをビルドするようにしました。
ZeroMQ .Net Bindingの使用方法がわかりません。 clzmq.dll(.Net Binding)を私のプロジェクトに参照として追加しました.clzmq.dllがWindows PATH変数WINDOWS/System32上で自動的にlibzmqを参照すると仮定しました。
私はこれに間違われているかどうかは知っていますか? C#バインディングのドキュメント(http://www.zeromq.org/bindings:clr)は、 "ZeroMQライブラリファイルをバインディングのために利用できるようにする必要がある"と述べていますが、PATH変数にコピーしても使用できるようにしていません。
ZeroMQ .Net Bindingsを使用しているときにDLLが見つかりませんでした。助けのための
おかげで、
誰かがそれに遭遇した場合、私はこれに対する解決策を投稿すると考えました。 libzmq.dllは、私がアプリケーションを実行しようとしていたマシンになかったMSVCP100.dllに依存しています。私がこれを理解したのは、www.dependencywalker.comから依存性ウォーカーをダウンロードして実行し、単にそれを実行することでした。すぐに欠落していたDLLが表示されました。次に、Microsoft Visual C++ 2010 Redistributableパッケージをインストールして、libzmqに必要な欠落しているスレッドDLLを修正しました。私はこれを他の人にしばらく保存して欲しい。 – Learning1
これを回答として投稿し、質問の解決策として選択する必要があります。そうすれば、人々はもっと簡単にそれを見つけることができます。 – dandan78
私はWindowsのx64版を使っていますが、x86版の再配布可能ファイルをインストールする必要がありました。今は意味をなさないが、私はその実現に向けて1時間を無駄にしている。 –