Запуск exe проекта Dot Net в Linux, который использует System.Management для получения информации об USB-устройстве

Привет, я создал приложение Dot Net в C# для получения информации об USB-устройстве, такой как DeviceID, Caption, ClassGUID и т. Д., Используя пространство имен System.Management. Я использую метод ManagementObjectSearcher для получения значения из Win32_DiskDrive. На Windows работает нормально. Я хочу запустить его на Linux-машине. Вы можете запускать приложения Dot Net на Linux-машине, используя Mono.

http://mono-project.com/Main_Page

Когда я запускаю exe моего приложения в Linux, используя Mono, я получаю следующую ошибку:

    Missing method .ctor in assembly /home/dvimay11/USBCamInfoNew/Debug/System.Management.dll, type System.Reflection.AssemblySignatureKeyAttribute
Can't find custom attr constructor image: /home/dvimay11/USBCamInfoNew/Debug/System.Management.dll mtoken: 0x0a000009

Unhandled Exception: System.TypeLoadException: Could not load type 'System.Reflection.AssemblySignatureKeyAttribute' from assembly 'System.Management'.
  at USBCamInfo.USBInfo.GetUSBDevices () [0x00000] in <filename unknown>:0 
  at USBCamInfo.USBInfo.LoadUSBInfo () [0x00000] in <filename unknown>:0 
  at USBCamInfo.USBInfo..ctor () [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) USBCamInfo.USBInfo:.ctor ()
  at USBCamInfo.Program.Main () [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'System.Reflection.AssemblySignatureKeyAttribute' from assembly 'System.Management'.
  at USBCamInfo.USBInfo.GetUSBDevices () [0x00000] in <filename unknown>:0 
  at USBCamInfo.USBInfo.LoadUSBInfo () [0x00000] in <filename unknown>:0 
  at USBCamInfo.USBInfo..ctor () [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) USBCamInfo.USBInfo:.ctor ()
  at USBCamInfo.Program.Main () [0x00000] in <filename unknown>:0

Может кто-нибудь помочь мне решить эту проблему. Я хотел узнать, как запустить Dot Net EXE на компьютере с Linux, используя пространство имен System.Management для получения информации о USB-устройстве.

Спасибо

1 ответ

Если вы посмотрите на дорожную карту Mono Project, вы обнаружите, что System.Management является специфическим для Windows, и нет никаких планов по его поддержке.

Вместо этого вы можете использовать SharpUsbLib с поддержкой USB под Linux.

Другие вопросы по тегам