it-swarm.com.de

ManagementObject-Klasse wird im System.Management-Namespace nicht angezeigt

Ich versuche ein wenig WMI in mein Windows-Formular zu schreiben und das ManagementObject gibt mir das 

"Der Typ- oder Namespace-Name 'ManagementObject' wurde nicht gefunden." Fehler

Hier ist mein unvollständiger Code:

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

Klicken Sie mit der rechten Maustaste auf Verweise auf der rechten Seite, und fügen Sie manuell System.Management hinzu. Obwohl ich es in die using-Anweisung aufgenommen habe, musste ich dies trotzdem tun. Sobald ich es geschafft hatte, funktionierte alles gut.

110
anon

Haben Sie einen Verweis auf die System.Management-Assembly hinzugefügt?

25
Paul Nearney

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, dann auf Referenz hinzufügen ... und unter Framework sollten Sie das System.Management-Framework aktivieren.

20
CFJH

Sie müssen Ihrem Projekt einen Verweis auf System.Management.dll hinzufügen.

Sie können System.Management.Instrumentation sehen, ohne einen Verweis auf System.Management.dll hinzuzufügen, da sie in einer anderen Bibliothek enthalten ist (System.Core.dll, die automatisch als Referenz enthalten ist), Sie können jedoch nicht auf die anderen enthaltenen Typen zugreifen von diesem Namespace, ohne explizit einen Verweis auf die Bibliothek System.Management.dll hinzuzufügen.

8
Murhaf Sousli

Ich denke, das Problem ist, es gibt kein WMI-Objekt für Win32_LogicalDisk.DeviceID=\"C:\".

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

mit:

ManagementObject disk = new ManagementObject("Win32_LogicalDisk");

und dann durch jedes Feld zu gehen:

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

~ füge einfach System.management mit Nuget Manager hinzu, Es hat für mich funktioniert! c #

1
ashish pawar

Stellen Sie sicher, dass Ihr Projekt nicht für das .NET 4 Framework-Clientprofil konfiguriert ist.

Siehe Namespace nicht erkannt (obwohl vorhanden) für weitere Details.

0
Andrew Hare

Dies ist die beste Lösung

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise und dann auf Verweis hinzufügen ..., und aktivieren Sie unter Framework das System.Management-Framework.