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

128voto

anon Points 1281

Cliquez à droite sur Références sur la droite et ajoutez manuellement System.Management. Même si je l'ai inclus dans l'instruction using, je devais encore le faire. Une fois que je l'ai fait, tout a bien fonctionné.

15 votes

Pourquoi Visual Studio n'inclut-il pas automatiquement la référence lorsque nous lui disons directement using System.Management; ? :(

0 votes

C'est le comportement correct. Ce qui est bizarre, c'est qu'il reconnaît System.Management même si sa référence n'est pas ajoutée !

0 votes

Est-ce que c'est un bug ou est-ce que ça doit être comme ça ? Je pensais que c'était parce que j'utilise .net4.0.

28voto

Paul Nearney Points 5502

Avez-vous ajouté une référence à l'assemblage System.Management ?

28voto

CFJH Points 241

Dans l'explorateur de solutions, cliquez avec le bouton droit de la souris sur Références, puis sur Ajouter une référence ... et sous Cadre, vous devez activer le cadre System.Management.

12voto

Murhaf Sousli Points 1163

Vous devez ajouter une référence à System.Management.dll à votre projet.

Vous pouvez voir System.Management.Instrumentation sans ajouter une référence à System.Management.dll parce qu'il est inclus dans une bibliothèque différente (System.Core.dll, qui est incluse comme référence automatiquement), mais vous ne pouvez pas accéder aux autres types contenus par cet espace de nom sans ajouter explicitement une référence à la bibliothèque System.Management.dll.

5voto

Aashish Pawar Points 1126

~ Il suffit d'ajouter System.management en utilisant le gestionnaire de nuget, Cela a marché pour moi ! c#

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