Я тестирую существующее приложение в предварительном просмотре Windows 8, и оно вылетает при запуске.Файлы журнала указывают, что это метод, в котором я выполняю некоторую проверку идентификатора процессора и сведений о сетевой карте.
Для этого я звоню
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();
}
}
(обратите внимание, что это приложение отлично работает в Windows 7 и более ранних версиях).
Затем я использую тот же синтаксис для перехватав Win32_NetworkAdapterConfiguration и получение свойств IPEnabled, IPAddress [] и MACAddress.
Но где-то здесь происходит сбой.
Я уже пытался исследовать это и обнаружил следующее В списке серверов Windows 8 классов и методов WMI и тех, которые я использую, его нет.Тем не менее, на этом же сайте есть список классов и методов WMI для Windows 7 , и они тоже не в этом!(Хотя он работает на Windows 7 без проблем).
Так что, судя по всему, он не поддерживается.
MSDN для ManagementClass указывает, что метод все еще присутствует в .NET 4.5 .Кроме того, этот ресурс Microsoft явно перечисляет Win32_Processor и Win32_NetworkAdapterConfiguration с нужными мне методами.
Итак, по ссылкам вы можете видеть, что я пытался исследовать это, так что это мойпоследняя остановка в попытке разгадать эту загадку.
Первоначально мое приложение было решением .NET 2.0, созданным в Visual Studio 2005. Я установил бета-версию Visual Studio 2011 в свою виртуальную машину Windows 8 Consumer Preview вместе с последним SQL2012 Экспресс.Я попытался импортировать свой проект в эту Visual Studio, но он не загружается, сообщая, что он поддерживает только разработку Metro.Поэтому я не могу отладить эту проблему на самой машине.
Так что мой вопрос конкретно, существуют ли эти классы в Windows 8?Если они делают, то что я делаю не так?Если нет, тогда мне нужно найти способ получить эту информацию, но я думаю, что это отдельный вопрос; -)