Подтвердить что ты не робот

Класс ManagementObject не отображается в пространстве имен System.Management

Я пытаюсь написать некоторый WMI в моей форме окна, и ManagementObject передает мне

"Тип или имя пространства имен" ManagementObject "не удалось найти" Ошибка

Вот мой неполный код:

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

Ответ 1

Щелкните правой кнопкой мыши ссылку справа и вручную добавьте System.Management. Несмотря на то, что я включил его в инструкцию using, мне все равно пришлось это сделать. Как только я это сделал, все работало нормально.

Ответ 2

Добавили ли вы ссылку на сборку System.Management?

Ответ 3

В обозревателе решений щелкните правой кнопкой мыши ссылку "Ссылки", затем "Добавить ссылку..." и в разделе "Рамка" вы должны активировать инфраструктуру System.Management.

Ответ 4

Вам нужно добавить ссылку на System.Management.dll в свой проект.

Вы можете увидеть System.Management.Instrumentation без добавления ссылки на System.Management.dll, потому что она включена в другую библиотеку (System.Core.dll, которая включена как ссылка автоматически), но вы не можете получить доступ к другие типы, содержащиеся в этом пространстве имен, без явного добавления ссылки на библиотеку System.Management.dll.

Ответ 5

Я думаю, проблема в том, что для объекта Win32_LogicalDisk.DeviceID=\"C:\" нет объекта WMI. Попробуйте заменить:

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

с:

ManagementObject disk = new ManagementObject("Win32_LogicalDisk");

а затем для перехода через каждое поле:

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

Ответ 6

~ просто добавьте System.management с помощью диспетчера нугетов, у меня это сработало! С#

Ответ 8

Это лучшее решение

В обозревателе решений щелкните правой кнопкой мыши Ссылки, затем выберите Добавить ссылку... и в разделе Framework следует активировать среду System.Management.