У меня есть универсальное приложение, в котором используются защищенные видео с помощью PlayReady DRM. Проблема с PlayReady заключается в том, что она работает только в том случае, если архитектура сборки приложений соответствует архитектуре ЦП (например: ARM build на ARM, x64 на 64-битном процессоре, x86 на 32-битном процессоре). Это по дизайну (по какой-то причине).Обнаружение, если процессор 64 бит в универсальном приложении (Windows)
Таким образом, проблема заключается в том, что пользователь имеет 64-битный процессор и имеет 32-битную ОС. В этом случае он получает сборку x86 из магазина (из-за 32-разрядной ОС), но PlayReady не будет работать из-за несоответствия сборки 64-битного CPI и X86. В этом случае я хочу отобразить сообщение (вместо того, чтобы просто не воспроизвести видео).
Я могу легко обнаружить сборку x86 (добавив условный символ), но как определить, является ли процессор 64-битным? Нет ничего похожего на System.Environment.Is64BitOperatingSystem
со всего .NET.
http://stackoverflow.com/questions/767613/identifying-the-cpu-architecture-type-using-c-sharp см. Ответ об использовании P/Invoke для получения архитектуры процессора –
Я сомневаюсь, что это реальный проблема, на вашей машине это происходит не так. Кто загружает приложение из магазина, автоматически получает соответствующую версию. –
@ HansPassant nope. Представьте, что у вас есть планшет с 64-битным Atom и Windows 8.1 32bit. Магазин предоставит вам X86, и PlayReady не сработает для вас. –