Ответ 1
Щелкните правой кнопкой мыши ссылку справа и вручную добавьте System.Management. Несмотря на то, что я включил его в инструкцию using, мне все равно пришлось это сделать. Как только я это сделал, все работало нормально.
Я пытаюсь написать некоторый 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:\"");
Щелкните правой кнопкой мыши ссылку справа и вручную добавьте System.Management. Несмотря на то, что я включил его в инструкцию using, мне все равно пришлось это сделать. Как только я это сделал, все работало нормально.
Добавили ли вы ссылку на сборку System.Management?
В обозревателе решений щелкните правой кнопкой мыши ссылку "Ссылки", затем "Добавить ссылку..." и в разделе "Рамка" вы должны активировать инфраструктуру System.Management.
Вам нужно добавить ссылку на System.Management.dll в свой проект.
Вы можете увидеть System.Management.Instrumentation без добавления ссылки на System.Management.dll, потому что она включена в другую библиотеку (System.Core.dll, которая включена как ссылка автоматически), но вы не можете получить доступ к другие типы, содержащиеся в этом пространстве имен, без явного добавления ссылки на библиотеку System.Management.dll.
Я думаю, проблема в том, что для объекта 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());
}
~ просто добавьте System.management с помощью диспетчера нугетов, у меня это сработало! С#
Убедитесь, что ваш проект не настроен для компиляции с профилем клиента .NET 4 Framework.
См. Пространство имен не распознано (даже если оно есть) для получения более подробной информации.
Это лучшее решение
В обозревателе решений щелкните правой кнопкой мыши Ссылки, затем выберите Добавить ссылку... и в разделе Framework следует активировать среду System.Management.