53 votes

La classe ManagementObject n'apparaît pas dans l'espace de noms System.Management

J'essaye d'écrire une WMI dans mon formulaire Windows et le ManagementObject me donne la réponse suivante

"Le nom de type ou d'espace de nom 'ManagementObject' n'a pas pu être trouvé" Erreur

Voici mon code incomplet :

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:\"");

2voto

Tommy Lu Points 21

Je pense que le problème est qu'il n'y a pas d'objet WMI pour Win32_LogicalDisk.DeviceID=\"C:\" . Essayez de le remplacer :

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

avec :

ManagementObject disk = new ManagementObject("Win32_LogicalDisk");

puis de passer en revue chaque champ :

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

1voto

Meisam Rasouli Points 27

La version de Visual Studio que je possède n'importe pas ManagementObjectSearcher en important l'espace de nom 'System.Management'. Si vous rencontrez le même problème, essayez d'ajouter une référence à 'System.Management.dll' en effectuant les étapes suivantes.

  1. Cliquez sur les propriétés du projet dans l'explorateur de solutions de Visual Studio. Allez à "Références".
  2. Cliquez sur "Ajouter" pour ajouter une nouvelle référence. Cliquez sur "Parcourir...".
  3. Naviguez vers " C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 ".
  4. Ajouter une référence à " C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Management.dll ".

0voto

Andrew Hare Points 159332

Assurez-vous que votre projet n'est pas configuré pour compiler avec le profil client du Framework .NET 4.

Veuillez consulter Espace de nom non reconnu (bien qu'il soit présent) pour plus de détails.

0 votes

J'ai examiné le lien et vérifié mon cadre cible. Il s'agit de .NET 3.5

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X