Właśnie zaczynam używać ZeroMQ i eksperymentuję z niektórymi próbkami. Używam wiązań języka C# i napotkam problem z uzyskaniem wyjątku DllNotFound.ZeroMQ DllNotFoundException przy użyciu powiązań .Net
Mogę ładować i uruchamiać próbki na moim komputerze programistycznym po skopiowaniu biblioteki libzmq.dll do systemu Windows/System32, ale kiedy przenosę rzeczy na inne serwery, pojawia się błąd pomimo skopiowania pliku libzmq.dll do obu folderów są uruchomione zi do systemu Windows/System32.
Umieściłem clzmq.dll w folderze, w którym znajduje się przykładowa aplikacja, a także libzmq.dll. Również umieściłem libzmq w c:/Windows/System32. Używam dodatku Service Pack 2 dla systemu Windows Server 2003. Kiedy sprawdzam zmienne środowiskowe maszyny, WINDOWS/System32 jest w zmiennej PATH. Zrobiłem również, aby zbudować libzmq dll za pomocą Release, a nie debugowania.
Jest możliwe, że nie rozumiem, w jaki sposób należy zastosować wiązanie ZeroMQ .Net. Dodałem clzmq.dll (The. Binding) do mojego projektu jako odniesienia i założyłem, że clzmq.dll automatycznie odwoływał się do libzmq w zmiennej PATH systemu Windows WINDOWS/System32.
Czy ktoś wie, czy się mylę w tej sprawie. Dokumentacja powiązania C# (http://www.zeromq.org/bindings:clr) stwierdza, że "plik biblioteki ZeroMQ będzie musiał być udostępniony, aby powiązanie zadziałało", ale nie udało mi się udostępnić tego pliku pomimo jego skopiowania do zmiennej PATH.
Czy ktoś napotkał wyjątek biblioteki DLL nie znaleziony podczas korzystania z powiązań sieci .NET w wersji ZeroMQ?
Dzięki za pomoc,
Pomyślałem, że zamieściłbym rozwiązanie tego problemu, jeśli ktoś inny się na to zdecyduje. Plik libzmq.dll ma zależności od pliku MSVCP100.dll, który był nieobecny na komputerze, na którym próbowałem uruchomić aplikację. Sposób, w jaki to rozgrywałam, polegał na pobieraniu i uruchomianiu zależności na stronie www.dependencywalker.com i po prostu uruchomieniu go. To natychmiast pokazało brakującą bibliotekę DLL. Następnie zainstalowałem pakiet redystrybucyjny Microsoft Visual C++ 2010, aby naprawić brakującą bibliotekę DLL, która była wymagana przez libzmq. Mam nadzieję, że to zaoszczędzi innym czasu. – Learning1
Powinieneś opublikować to jako odpowiedź i wybrać jako rozwiązanie swojego pytania. W ten sposób ludzie będą mogli łatwiej go znaleźć. – dandan78
Aby to rzucić, mimo że korzystam z wersji x 64 systemu Windows, potrzebowałem zainstalować wersję redystrybucyjną x86. Ma to sens, ale zmarnowałem godzinę na dojście do tego wniosku. –