Sto testando un'applicazione esistente nell'anteprima consumer di Windows 8 e si blocca al momento dell'avvio. I file di registro indicano che si trova nel metodo in cui eseguo alcune convalide sull'ID della CPU e sui dettagli della scheda di rete.I metodi WMI Win32_Processor e Win32_NetworkAdapterConfiguration sono disponibili in Windows 8?
Per fare questo, io chiamo
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (cpuInfo.Length == 0)
{
// only return cpuInfo from first CPU
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
}
(Si noti che questa applicazione funziona bene su Windows 7 e versioni precedenti).
Quindi utilizzo la stessa sintassi per l'aggancio in Win32_NetworkAdapterConfiguration e ottenere le proprietà IPEnabled, IPAddress [] e MACAddress.
Ma da qualche parte qui sta andando in crash.
Ho cercato di effettuare ricerche in questo già, e ho trovato il seguente Windows 8 server list of WMI classes and methods e quelli che sto usando non sono su di esso. Tuttavia, lo stesso sito ha anche una lista di Windows 7 WMI classes and methods, e anche in questo caso non ci sono! (Anche se funziona su Windows 7, nessun problema).
Quindi, dal suo aspetto, non è supportato.
Il MSDN per ManagementClass indica che il metodo is still present in .NET 4.5. Inoltre, this Microsoft resource elenca in modo esplicito Win32_Processor e Win32_NetworkAdapterConfiguration, con i metodi necessari.
Quindi, dai link, puoi vedere che ho provato a cercare questo, quindi questa è la mia ultima fermata nel tentativo di risolvere questo mistero.
La mia app è originariamente una soluzione .NET 2.0 creata in Visual Studio 2005. Ho installato Visual Studio 2011 Beta nella mia VM di anteprima consumer di Windows 8, insieme all'ultimo SQL 2012 Express. Ho provato a importare il mio progetto in questo Visual Studio ma non lo carica, dicendomi che supporta solo lo sviluppo Metro. Pertanto non posso eseguire il debug di questo problema sulla macchina stessa.
Quindi la mia domanda è specifica che queste classi esistono in Windows 8? Se lo fanno, allora cosa sto sbagliando? Se non lo fanno, allora ho bisogno di trovare un modo per ottenere queste informazioni - ma suppongo che sia una domanda separata ;-)
Non riesco a credere che avrebbero rimuoverli, modo rapido per testare; scarica WMICC e usa la sua GUI per vedere se sono elencati/cosa ti aspetti http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8572 –
Nota a margine: Visual Studio 2011? Non c'è [niente di simile] (http://www.danielmoth.com/Blog/Visual-Studio-11-Not-2011.aspx), nemmeno in Beta. Al momento è disponibile una beta versione 11, ma non è stato annunciato alcun nome del prodotto finale. Alta probabilità di essere nominato 2012 anche se. –
Ciao grazie, ho usato il WMICC e in effetti è lì! Penso che possa aver contribuito in quanto l'ID del processore che ha recuperato era vuoto. Forse a causa di me che corro in una VM? Per quanto riguarda la denominazione VS 2011/11, mi scuso - è quello che ottieni su www.microsoft.com/express che è per Windows 8 ;-) – Mike