La clase ManagementObject no aparece en el espacio de nombres System.Management

Estoy tratando de escribir algo de WMI en mi formulario de Windows y ManagementObject me está dando el

“No se pudo encontrar el tipo o el nombre de espacio de nombres ‘ManagementObject'” Error

Aquí está mi código no completo:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Threading; using System.Security.Policy; using System.Management; using System.Management.Instrumentation; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { ManagementObject disk = new ManagementObject("Win32_LogicalDisk.DeviceID=\"C:\""); 

Haga clic con el botón derecho en Referencias a la derecha y agregue manualmente System.Management. A pesar de que lo incluí en la statement de uso, todavía tenía que hacer esto. Una vez que lo hice, todo funcionó bien.

¿Ha agregado una referencia al conjunto System.Management?

En el Explorador de soluciones, haga clic con el botón derecho en Referencias, luego Agregar referencia … y en Marco, debe activar el marco de administración de sistemas.

Debe agregar una referencia a System.Management.dll a su proyecto.

Puede ver System.Management.Instrumentation sin agregar una referencia a System.Management.dll porque se incluye en una biblioteca diferente (System.Core.dll, que se incluye como una referencia automáticamente), pero no puede acceder a los otros tipos contenidos por ese espacio de nombres sin agregar explícitamente una referencia a la biblioteca System.Management.dll.

Creo que el problema es que no hay ningún objeto WMI para Win32_LogicalDisk.DeviceID=\"C:\" . Trate de reemplazar:

 ManagementObject disk = new ManagementObject("Win32_LogicalDisk.DeviceID=\"C:\""); 

con:

 ManagementObject disk = new ManagementObject("Win32_LogicalDisk"); 

y luego pasar por cada campo:

 foreach (ManagementObject o in disk.Get()){ //Do what ever you need here.... For example: Console.WriteLine(o.ToString()); } 

Asegúrese de que su proyecto no esté configurado para comstackrse con el perfil de cliente de .NET 4 Framework.

Consulte el espacio de nombres no reconocido (aunque esté allí) para obtener más detalles.

~ simplemente agregue System.management usando el administrador de nuget, ¡Funcionó para mí! do#