我正在尝试使用System.Management和System.Management.Instrumentation名称空间来获取有关运行我的程序的硬件的一些信息。然而,System.Management下的类似乎丢失了。我可以导入命名空间,但它似乎不包含任何内容。插装命名空间,看起来确实有它的所有类。我确定我看的是.net 4框架应用程序接口,看起来它应该在那里。有什么想法吗?
发布于 2012-12-01 01:35:07
命名空间可以分散在多个框架程序集中。这肯定是System.Management.Instrumentation的情况,它出现在System.Core.dll中。它是由您为启动项目而选择的项目模板自动添加为引用的程序集。
System.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不是常用的东西。所以它是可选的,你必须要求它。
使用项目+添加引用添加System.Management
使用MSDN Library找出需要添加什么程序集才能使用特定的类,这在本文的顶部有很好的说明。对于ManagementQuery,您将看到:
命名空间: System.Management
程序集: System.Management (在System.Management.dll中)
最后一行是你的提示。
https://stackoverflow.com/questions/13650041
复制相似问题