我一直在苦苦寻找解决方案,但虽然此问题曾经被问过,但答案已不再适用于.NET Standard 1.5及其跨平台的思维方式。另外,这个问题涉及的是操作系统架构而不是.NET平台架构。
我尝试过以下方法: - 使用C#获取计算机是64位还是32位:https://dev59.com/dmw05IYBdhLWcg3wykvn - 如何检测Windows 64位平台:https://dev59.com/z3RC5IYBdhLWcg3wUvQS
其中最佳答案是Environment.Is64BitOperatingSystem API,但它没有在.NET Standard 1.5中实现。
我尝试过以下方法: - 使用C#获取计算机是64位还是32位:https://dev59.com/dmw05IYBdhLWcg3wykvn - 如何检测Windows 64位平台:https://dev59.com/z3RC5IYBdhLWcg3wUvQS
其中最佳答案是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
技巧。 - Timothy Groote