Я все время искал решение этой проблемы, но, хотя вопрос был задан до того, как ответы больше не применимы к .NET Standard 1.5 и его кроссплатформенному образу мышления. Кроме того, этот вопрос касается архитектуры ОС, а не архитектуры платформы .NET.
Что я пробовал
- Используя C #, как узнать, машина 64-битная или 32-битная?
- Как определить 64-разрядную платформу Windows с помощью .NET? а>
Лучший ответ: Environment.Is64BitOperatingSystem - это API, который не реализован в .NET Standard 1.5.
Ответ
/// <summary>Is64s the bit operating system.</summary>
/// <returns></returns>
if (IntPtr.Size == 8)
// 64Bit
else
// 32bit
это не то, что мне нужно. Хотя это все еще возможно в .NET Standard, он определяет разрядность платформы .NET, а не базовой ОС.
Почти во всех других ответах используется [DllImport("kernel32.dll")]
, который, я почти уверен, не будет работать ни с чем, кроме Windows.
Вопрос
Итак, как мне определить разрядность базовой ОС для всех платформы, которые поддерживает .NET Standard 1.5 (Linux, iOS, Windows, Android и т. д.)?
IntPtr.Size
- person Timothy Groote   schedule 10.08.2017