参考类型’组件’声称它在’系统’中定义

试图在UWP应用程序中获取一些WMI对象。 在.net 4.6上运行VS2015。

我收到错误的ForEach和方法调用声明“引用类型’组件’声称它在’系统’中定义”,错误CS7069。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Management; namespace SystemInfo { class wmiObject { static osDetails Program() { ManagementObjectCollection osDetailsCollection = getWMIObject("SELECT OSType, caption FROM Win32_OperatingSystem"); osDetails Details = new osDetails(); foreach (ManagementObject mo in osDetailsCollection) { Details.OSName = mo["Caption"].ToString(); } osDetailsCollection = getWMIObject("SELECT Description, NumberOfLogicalProcessors, L3CacheSize from Win32_Processor"); foreach (ManagementObject mo in osDetailsCollection) { Details.NumberOfLogicalProcessors = mo["NumberOfLogicalProcessors"].ToString(); Details.L3CacheSize = mo["L3CacheSize"].ToString(); Details.Description = mo["Description"].ToString(); } ; return Details; } static ManagementObjectCollection getWMIObject(string query) { ManagementObjectSearcher objOSDetails = new ManagementObjectSearcher(query); ManagementObjectCollection osDetailsCollection = objOSDetails.Get(); return osDetailsCollection; } class osDetails { public string Description; public string OSName; public string NumberOfLogicalProcessors; public string L3CacheSize; } } } 

错误

 Severity Code Description Project File Line Error CS7069 Reference to type 'Component' claims it is defined in 'System', but it could not be found SystemInfo C:\Users\Luke\Documents\GitHub\lgDns\lgDns\SystemInfo\SystemInfo\osDetails.cs 41 Error CS7069 Reference to type 'Component' claims it is defined in 'System', but it could not be found SystemInfo C:\Users\Luke\Documents\GitHub\lgDns\lgDns\SystemInfo\SystemInfo\osDetails.cs 18 Error CS7069 Reference to type 'Component' claims it is defined in 'System', but it could not be found SystemInfo C:\Users\Luke\Documents\GitHub\lgDns\lgDns\SystemInfo\SystemInfo\osDetails.cs 20 Error CS7069 Reference to type 'Component' claims it is defined in 'System', but it could not be found SystemInfo C:\Users\Luke\Documents\GitHub\lgDns\lgDns\SystemInfo\SystemInfo\osDetails.cs 26 Error CS7069 Reference to type 'Component' claims it is defined in 'System', but it could not be found SystemInfo C:\Users\Luke\Documents\GitHub\lgDns\lgDns\SystemInfo\SystemInfo\osDetails.cs 28 Error CS7069 Reference to type 'Component' claims it is defined in 'System', but it could not be found SystemInfo C:\Users\Luke\Documents\GitHub\lgDns\lgDns\SystemInfo\SystemInfo\osDetails.cs 29 Error CS7069 Reference to type 'Component' claims it is defined in 'System', but it could not be found SystemInfo C:\Users\Luke\Documents\GitHub\lgDns\lgDns\SystemInfo\SystemInfo\osDetails.cs 30 

任何帮助,将不胜感激。

这可能对你有用

 foreach (ManagementObject mo in osDetailsCollection) { foreach (PropertyData prop in mo.Properties) { if(prop.Name == "Caption") Details.OSName = prop.Value; } } 

我刚刚遇到这个问题,我找到的解决方案是将项目重新制作为C#WindowsFormsApp。 它自动添加了引用:

 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Microsoft.CSharp.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Core.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Data.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Data.DataSetExtensions.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Deployment.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Drawing.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Net.Http.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Windows.Forms.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Xml.dll C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Xml.Linq.dll 

希望这可以帮助别人。