c# - Referencia al tipo ''Componente'' afirma que está definido en ''Sistema''
uwp wmi-query (2)
Intentando obtener algunos objetos WMI en una aplicación UWP. Ejecutando VS2015 en .net 4.6.
Recibo errores para ForEach y las llamadas al método que indican que "Referencia para escribir ''Componente'' afirma que está definido en ''Sistema''" con el error 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;
}
}
}
Errores
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
Cualquier ayuda sería apreciada.
Esto podría funcionar para usted
foreach (ManagementObject mo in osDetailsCollection)
{
foreach (PropertyData prop in mo.Properties)
{
if(prop.Name == "Caption")
Details.OSName = prop.Value;
}
}
Acabo de encontrarme con este problema, y la solución que encontré fue rehacer el proyecto como C # WindowsFormsApp. Se agregó automáticamente las referencias:
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
Con suerte eso ayuda a alguien.