LibUsbDotNet, нет libusb-1.0.dll
Я пытаюсь портировать некоторый источник C (Linux), используя libusb, на C# (Windows). Я успешно установил LibUsbDotNet на Windows 7. Затем я продолжил добавлять using MonoLibUsb
, так как это выглядит как самый простой путь для портирования. Тем не менее, при запуске есть исключение, говорящее, что libusb-1.0.dll
пропал, отсутствует. И действительно, я не могу найти это в C:\Windows\System32
, Итак, два вопроса
- Где я могу найти его? Поиск в Интернете не выявил никаких удобных пакетов установщика.
- Почему он не установлен как часть LibUsbDotNet? AFAICS отсутствие этого делает половину LibUsbDotNet непригодной для использования.
1 ответ
Наткнулся на ту же проблему через год после вашего поста во время компиляции программы на C# с использованием библиотеки LibUsbDotNet:
PS C:\src\FaultMonitor\FaultMonitor\bin\Debug> .\FaultMonitor.exe -u
An error occured while executing the proxy:
libusb-1.0.dll not found. If this is a 64bit operating system, ensure that the 6
4bit version of libusb-1.0.dll exists in the '\Windows\System32' directory.
at MonoLibUsb.MonoUsbSessionHandle..ctor()
Для тех, кто находится в подобном затруднительном положении, скачайте библиотеку libusb и распакуйте ее содержимое (вам понадобится 7zip). В извлеченном содержимом скопируйте \MS32\dll\libusb-1.0.dll
в ваш C:\windows\SysWOW64\
папку и скопируйте \MS64\dll\libusb-1.0.dll
в ваш C:\windows\System32\
, После этого программа запустилась без проблем:
PS C:\src\FaultMonitor\FaultMonitor\bin\Debug> .\FaultMonitor.exe -u
[15-10-23.02:09:05][+] Device: VendorID: 4203, ProductID: 63, Address: 1
[15-10-23.02:09:05][+] Device: VendorID: -32530, ProductID: 33, Address: 2