在Linux上运行Dot Net project exe,它使用System.Management来获取USB设备信息

时间:2013-04-12 14:12:34

标签: c# .net linux mono system.management

嗨,我在C#中创建了一个Dot Net应用程序,使用System.Management命名空间获取DeviceID,Caption,ClassGUID等USB设备信息。我正在使用ManagementObjectSearcher方法从Win32_DiskDrive获取值。它在Windows上正常运行。我想在Linux机器上运行它。您可以使用Mono在Linux机器上运行Dot Net应用程序。

http://mono-project.com/Main_Page

当我使用Mono在Linux上运行应用程序的exe时出现以下错误:

    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

任何人都可以帮我解决这个问题。我想知道如何使用System.Management命名空间在Linux机器上运行我的Dot Net exe来检索USB设备的信息

由于

1 个答案:

答案 0 :(得分:0)

如果您查看Mono Project Roadmap,您会发现System.Management是针对Windows的,并且没有计划支持它。

您可以使用SharpUsbLib代替在Linux下支持USB。