为什么我的.net framework特别缺少MS API(System.Management类)中的类?

为什么我的.net framework特别缺少MS API(System.Management类)中的类?,.net,visual-studio-2010,debugging,wmi,.net,Visual Studio 2010,Debugging,Wmi,我正在尝试使用System.Management和System.Management.Instrumentation命名空间来获取有关我的程序正在运行的硬件的一些信息。然而,系统管理下的课程似乎缺失了。我可以导入名称空间,但它似乎不包含任何内容,除了。检测命名空间,它似乎有它的所有类。我确保我在看.NET4FrameworkAPI,它似乎应该在那里。有什么想法吗 命名空间可以分散在多个框架程序集中。对于System.Management.Instrumentation,情况肯定是这样的,它出现在

我正在尝试使用System.Management和System.Management.Instrumentation命名空间来获取有关我的程序正在运行的硬件的一些信息。然而,系统管理下的课程似乎缺失了。我可以导入名称空间,但它似乎不包含任何内容,除了。检测命名空间,它似乎有它的所有类。我确保我在看.NET4FrameworkAPI,它似乎应该在那里。有什么想法吗

命名空间可以分散在多个框架程序集中。对于System.Management.Instrumentation,情况肯定是这样的,它出现在System.Core.dll中。它是一个程序集,由您为启动项目而选择的项目模板自动添加为引用

Core非常有用,例如它包含Action和Func委托类型。几乎所有的程序都有它们的用途,所以它会自动添加。System.Management.Instrumentation名称空间应运而生。这对于.NET程序集不是典型的,但System.Core有点特殊,它包含在.NET 3.5中添加的类,它们不想与.NET 2.0和.NET 3.0程序集混淆

但要使用WMI完成一些有用的工作,您需要像ManagementQuery这样的类,它们位于另一个程序集System.Management.dll中。这不是像System.Core那样自动完成的,WMI不是常用的东西。所以它是可选的,你必须要求它

使用项目+添加引用添加系统管理

使用MSDN库找出使用特定类需要添加哪些程序集,这在本文顶部有详细的文档记录。对于ManagementQuery,您将看到:

名称空间:系统管理
程序集:系统管理(在System.Management.dll中)


最后一行是提示。

查看应用程序是否使用.NET Framework客户端配置文件或完成。。。客户端配置文件包括较小的类和dll的确定系统配置。*项也让我很沮丧。一些在核心,一些在配置。谢谢!您的操作和函数引用也很有用,因为我不必要地定义了自己的简单委托。