Ответ 1
Вы можете проверить, IntPtr.Size
4
или 8
.
Возможный дубликат:
Как узнать, работает ли мое приложение как 32 или 64-битное приложение?
Привет
У меня есть приложение в С# (Framework 3.5 SP1), и мне нужно загрузить неуправляемую сборку во время выполнения, но есть две разные версии: одна для x86 и другая для x64, поэтому мне нужно знать во время выполнения, в котором режим - это приложение, выполняющее
Я видел этот POST, но он для С++, есть ли более простой способ сделать это на С#? или как это сделать на С#?
Спасибо
Вы можете проверить, IntPtr.Size
4
или 8
.
Используйте свойство System.Environment.Is64BitOperatingSystem
, представленное в .NET 4.0. Согласно MSDN:
Определяет, является ли текущая операционная система 64-разрядной операционной системой, она возвращает true
, если операционная система 64-разрядная; в противном случае false
.
Вы можете просто проверить размер IntPtr
через IntPtr.Size
, чтобы узнать, как работает ваш процесс:
В .NET вы можете настроить Platform Target
в своих свойствах проекта на Any CPU
, чтобы автоматически запускать ваше приложение как x64 на x64 OS и x86 на ОС x86 с тем же двоичным кодом.
Ваше приложение может работать на x86 даже на ОС x64, так как процесс, запускающий его, может работать на эмуляции WOW64 и запускает ваш процесс. Вот несколько дополнительных способов запустить x64-процесс как процесс x86 на x64-ОС.
Это сообщение в блоге MSDN - хорошее начало. GetEnvironmentVariable("PROCESSOR_ARCHITECTURE").ToString()
также см. код GetPlatform
в Mono Paint.