ManagementObject类未显示在System.Management命名空间中

时间:2010-11-30 14:10:41

标签: c# .net

我正在尝试在我的Windows窗体中编写一些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:\"");

9 个答案:

答案 0 :(得分:118)

右键单击右侧的“引用”,然后手动添加“System.Management”。即使我将它包含在using语句中,我仍然必须这样做。一旦我做了,一切都很好。

答案 1 :(得分:26)

您是否添加了对System.Management程序集的引用?

答案 2 :(得分:21)

在Solution Explorer中,右键单击References,然后单击Add Reference ...,在Framework下,您应该激活System.Management框架。

答案 3 :(得分:8)

您需要向项目添加对System.Management.dll的引用。

您可以在不添加对System.Management.dll的引用的情况下查看System.Management.Instrumentation,因为它包含在另一个库中(System.Core.dll,它自动包含在参考中),但您无法访问该命名空间包含的其他类型,而不显式添加对System.Management.dll库的引用。

答案 4 :(得分:2)

我认为问题是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());
}

答案 5 :(得分:1)

〜只需使用nuget manager添加System.management, 它对我有用! C#

答案 6 :(得分:0)

确保您的项目未设置为针对.NET 4 Framework Client Profile进行编译。

有关详细信息,请参阅Namespace not recognized (even though it is there)

答案 7 :(得分:0)

在解决方案资源管理器中,右键单击“引用”,然后单击“添加引用...”,然后在“框架”下激活System.Management框架。

答案 8 :(得分:0)

我拥有的 Visual Studio 版本没有通过导入“System.Management”命名空间来导入 ManagementObjectSearcher。如果您遇到同样的问题,请尝试通过执行以下步骤添加对“System.Management.dll”的引用。

  1. 在 Visual Studio 中的解决方案资源管理器上单击项目属性。 转到“参考资料”。
  2. 点击“添加”以添加新的参考。 点击“浏览...”。
  3. 导航到“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727”。
  4. 添加对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Management.dll”的引用。