LibUsbDotNet, нет libusb-1.0.dll

Я пытаюсь портировать некоторый источник C (Linux), используя libusb, на C# (Windows). Я успешно установил LibUsbDotNet на Windows 7. Затем я продолжил добавлять using MonoLibUsb, так как это выглядит как самый простой путь для портирования. Тем не менее, при запуске есть исключение, говорящее, что libusb-1.0.dll пропал, отсутствует. И действительно, я не могу найти это в C:\Windows\System32, Итак, два вопроса

  1. Где я могу найти его? Поиск в Интернете не выявил никаких удобных пакетов установщика.
  2. Почему он не установлен как часть 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
Другие вопросы по тегам